web-dev-qa-db-ja.com

K = 1024の起源は何ですか?

キロバイトのバイト数に違いがあるのはなぜですか?一部の場所では、1024(210)一方、他の場合は1000です(そして、M、G、Tなどでその差はますます大きくなります)。

これは1024と1000のどちらであるかについてのコメントではありませんが(コメントで説明できます)、この状況がどこで発生したか、いつ発生したか、あるいはその両方が発生したかについてです。

私の知る限り、Linuxおよびハードウェアの製造元は1024バリアントを使用していません。それと聞いて、MS-DOSがこのバージョンを共通にしたと思いますが、事実は何ですか?

73

多くの場合、技術者が1024 = 1Kを使用することは正しく、理にかなっています。

エンドユーザーにとっては、10を基にした数体系に誰もが慣れているため、通常は1000 = 1kと言う方が適切です。

問題はどこに線を引くかです。時々、マーケティングや広告の人々は、実際の「翻訳」やエンドユーザーへの技術データと言語の適応に成功しないことがあります。

8
mit

半導体メーカーを非難する(彼らは私たちにバイナリハードウェアのみを提供している)[1]

さらに良いのは、ロジック自体を非難することです(バイナリロジックは最も基本的なロジックです)。

さらに良い:惨めな10進法の責任は誰にあるのでしょうか?

バイナリシステムよりもはるかに多くの欠陥があります。 それは、人間の種の平均的な指の数に基づいて

うーん...

[1]量子3キュービットコンピュータが欲しい!!!さあ!

3
sehe

1024は非難されるべきではありません。コンピューター(デジタル)が今日と同じように高速で効率的である理由はそれが実際に非常に良いことだからです。コンピューターは2つの値(0,1)のみを使用するため、数式から、アナログシステムの困難さと複雑さ(不正確さ)を取り除きます。

1の2乗は1000なので、キロバイトが1000ビットだと言った場合、さらに複雑になります。したがって、1キロバイトでも浮動小数点数または近似値になるため、不正確になります。

しかし、8ギガバイト*を販売し、これを小さな活字に追加したことについて、マーケティングの大部分を非難します。

* 1 gigabyte is 1,000,000,000 bytes. 

それは本当に残念です、それは接続速度と同じことです、あなたのISPはあなたにあなたに〜150キロバイトを告げる代わりに1.5Mbpsを言うでしょう。それは非常に誤解を招くだけです

1
Ibu

コンピューター上の数値が2進数であり、2 ^ 10が1024であると考えると、それは完全に理にかなっています。整数演算と ビットシフト のみを使用して1024で簡単に除算できるため、1000ではなく1024を使用する方がはるかに簡単です。 1000で割ると、はるかに高価な演算が行われ、浮動小数点演算が必要になる場合があります。

例えば。

bytes = 1 073 741 824
kilobytes = bytes >> 10 = 1 048 576
megabytes = kilobytes >> 10 = 1024
gigabytes = megabytes >> 10 = 1
0