K = 1024の起源は何ですか?[閉まっている]


73

キロバイトのバイト数に矛盾があるのはなぜですか?ある場所では1024(2 10)の数字を見ましたが、他の場所では1000です(そして、M、G、Tなどで差はますます大きくなります)。

これは1024であるか1000であるかに関するコメントではなく(コメントで説明できます)、この状況がどこで/いつ発生したか、および/または広範囲になったのかについてです。

私の知る限り、Linuxとハードウェアのメーカーは1024バリアントを使用しません。それと伝聞によれば、MS-DOSがこのバージョンを一般的なものにしたと思いますが、事実は何ですか?


23
1つの表現をしているバイナリ(2 ^ 10、または1024)他は、小数点(10 ^ 3または1000)にある間に...
Trezoid

13
責任を負う特定の人を探している場合は、ハードドライブの製造元に向けてください。10進MB、GBなどで表現すると、デバイスの容量が増えているように見えます。常にこれを行っていますが、10進と2進のギャップが十分に大きくなったのはごく最近までではありません。重要なことです。
ローレンス

23
@ultrasawblade:この用語をgigabyte正しく使用している唯一のグループの1つであるHDDメーカーを非難したいですか?
パラドロイド

13
私は常に、20GB程度のドライブが一般的になる前に、コンピュータに関連する1K = 1024であることを理解しているように思えました。これは、多くの非技術者が定期的にPCを使用し始めた時期とほぼ一致しています。90年代初期およびそれ以前の膨大な量のコンピューター関連文献(技術および非技術)には、「10進数」KBまたは「キビバイト」について何も言及されていません。
ローレンス

13
@paradroid:ギガバイトはもともと1024 mb(およびmb = 1024 kbなど)を意味していました。HDD製造業者は誤って使用することを主張したため、1000を意味するように調整されました。キロが1000を意味しているので確かに、これはあなたが「正しい」と考えるものに依存しないが、それは1999年に変更されるまで、コンピュータサイエンスの中に、キロバイトは、技術的な理由のために、常に1024だった
ジェームズ

回答:


63

かなり前に遡り、ここ詳しく説明します。誰かがIBMを非難できるようです。

それについてもう少し考えて、私はアメリカ人全体を非難するだろう、彼らのSystèmeinternational d'unitésに対する露骨な無視:P


31
アメリカ人を非難することは常に簡単です。
Notinlist

13
@Notinlist:冗談です。
パラドロイド

5
それはパルプフィクション映画の壮大なシーンを思い出させます...「メートル法」についての質問を持つもの。:-)
ピエールワトレ

7
@Notinlistアメリカ人を常に非難するのは簡単です。それが私たちがそんなにそれをする理由です。それとその楽しみという事実。
シングルトン

3
そこの1961年のエントリは、「65k」に言及しているという点で興味深いです。「k = 1024」と「k = 1000、rounded」の明確な違いを示すことができる最初の桁であり、後者については明らかに低下します。一方、1964年には、誰もがバイナリの意味を使用しています。
ランダム832

26

当初、すべてのコンピューティングは低レベルでした。また、低レベルのプログラミングでは、「1000」という数字はまったく役に立たず、SIのものを再利用するために大量のプレフィックスが必要でした。誰もが現場でそれを知っていたので、混乱はありませんでした。それは30年間または誰が知っているためによく役立った。

それは彼らがアメリカ人だったからではなく、彼らは何としてもSIを破る必要がありました。:-)

私が知っているキビバイトと言うプログラマーはいません。キロバイトと言い、1024バイトを意味します。アルゴリズムは2の力でいっぱいです。今日でも、「1000」はプログラマーの間では本当に役に立たない数字です。

キビとミビを言うのはあまりにも面白くて、話題から注目を集めます。私たちは喜んでそれを電気通信とディスクストレージセクターに提供します:-)。そして、プログラマー以外の人が読むことができるユーザーインターフェイスにキビバイトを書き込みます。


3
ビットについて話すときはさらに面白い-"mibibit"
ジェームズ

3
KiBなどはkibibyteではなくkilobinarybyteなどと発音されるはずだと思います。
ライライアン

2
@Lie Ryanは、「kilobinarybyte」などのプレフィックスを使用することは最終的に失敗した提案であり、kibibyteとは異なる略語を使用していました。参照してくださいen.wikipedia.org/wiki/Binary_prefix
ベン・リー

3
kmをキロデシマルメーターとして発音するのは公平でしょうか?
ジャストジェフ

3
1000という数字は「まったく役に立たない」わけではありません。「k = 1000」は、1950年代からコンピューティングで使用されています。最初のコンピューターは、実際にはバイナリーではなく、10進マシンでした。ネットワーク速度は、常に1000の倍数で測定されています。「30年間うまく機能しましたか?」本当に?プログラマーは少なくとも43年間「k = 1024」について不満を言ってきました。en.wikipedia.org/wiki/Timeline_of_binary_prefixes
endolith

8

多くの場合、技術者が1024 = 1Kを使用するのは正しいことです。

エンドユーザーの場合、誰もが10ベースの数値システムに慣れているため、通常は1000 = 1kと言う方が良いでしょう。

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


13
技術者は1024バイトが実際にはキビバイト(KiB)であることを知っている必要がありますが、この用語は技術者でない人に知られていません
パラドロイド

8
誰が正しいと言うのですか?キロは、何世紀にもわたって1000年を意味しているので、IMO彼らは1024のためにそれを使用したことがないはずです
バートバンHeukelomを

20
バイトはSIユニットではありません。KBは「キロベル」を意味します(付与、ビッグバンによって生成されたサウンドがある場合はそれを説明しない限り、決して使用したくないユニットです)
ウーブル

10
@njd:C64には65536バイトのRAMがあります。慣例により、メモリサイズはkibiBytesで指定され、データ転送速度はキロビットで指定され、大容量ストレージは製造元が考える今のバイトで指定されます。ハードドライブはラベルにT、G、M、およびkを使用し、WindowsはTi、Gi、Mi、およびkiでサイズを報告します。そして、それらの1.44MBのフロッピー?これらは1.44MBや1.44MiBではなく、1.44キロビバイトです。それは1440kiBまたは1'474'560バイトです。
第三の

5
ただし、kiBなどのバリアントはかなり新しいものです。確かに、この問題が発生したときにそれらが使用されていたとは思わない。
新井

3

半導体メーカーの責任(彼らはバイナリハードウェアのみを提供します)[1]

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

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

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

うーん...

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


29
指の平均数が10未満であることがわかると思います</ pedant>
ロリーアルソップ

1
@Rory:^それはいい笑いだった
Mehrdad

2
@Rory:「少ない」</ pedant>。またはそれは?ちょっと待って、私は…
11

1

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

1キロバイトが1000ビットであると言うと、2の何乗で1000になるので、より複雑になりますか?そのため、1キロバイトであっても、浮動小数点または近似値を持つため不正確になります。

しかし、8ギガバイト*を販売し、これを小さな活字に追加したことは、マーケティングのせいです

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

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


3
15682ビットのファイルの大きさ、またはそのようなファイルがネットワークを介して転送される速度は、2の累乗には関係ありません。そして、それが最も混乱している状況です。
バートヴァンヒューケロム

2
最終的に、ファイルはメモリページに格納され、バイナリパワー境界に揃えられます。TCPを介して送信する場合、パケットが送信されるウィンドウサイズは2のべき乗の倍数です。ファイルがハードドライブに保存されると、2の累乗のブロックに保存されます。私はあなたの言っていることを理解していますが、キロバイト= 1024(または少なくとも2のべき乗の倍数)が計算に深く染み込んでいます。
FryGuy

1
公平を期すために、ネットワークは常にビットをベースとして使用しています。
Synetech

1
最初の5.25インチフロッピーは109,375バイトを保持し、「109.4 Kバイト」と宣伝されていました。これは悪意のあるマーケティング上の理由からもそうでしたか?「106.8 KB」と書く方が論理的だと思いますか?速度とモデムの速度はすべて、私たちを欺くために10進数で測定されますか?お願いします
エンドリス

1
@Ibu:1,000,000,000バイトと1GBの差は0です。実際、フロッピーメーカーは、差が非常に小さいのに、なぜ数字を悪意を持って増やすのでしょうか。彼らはしません。彼らが顧客を欺くための陰謀の一部であるからではなく、それが論理的で、明白で、正しいので、彼らは1000を使いました。同じ理由で、ハードドライブメーカーもMB時代から1000年代で測定を続けています。
エンドリス

0

コンピューター上の数値が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

計算時間は重要だと真剣に考えていますか?変換が非常に難しい場合、コンピューターが「km」を「1024 m」として処理しないのはなぜですか?
エンドリス

@endolithはい、少なくとも歴史的にはそう思います。今日は無視できるかもしれませんが、すべてのCPUサイクルがプレミアムであった初期には、このようなものには、適切な答えを与える迅速で簡単な計算が望ましいでしょう。特に、慣例により1KBが1024バイトを意味することを知っていた場合。
ジョー・ハーマンHaugholt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.