この質問 サイズを測定するこれらの3つの方法の違いについて不思議に思いました:キビバイト、akilobit、および従来のkilobyte。
これらの測定にはさまざまな用途があることを理解しています(データ転送速度はビット/秒で測定されます)。
this answer (emphasis mine)から取られた、以下に再現されたコメントです。
C64には65536バイトのRAMがあります。慣例により、メモリサイズはkibiBytesで指定され、データ転送速度はkilobits、そして何でも製造者が考える現在の大容量ストレージBytes。ハードドライブはラベルにT、G、M、kを使用し、WindowsはサイズをTi、Gi、Mi、ki。そして、それらの1.44MBフロッピー?これらは1.44MBでも1.44MiBでもなく、1.44キロバイトです。それは1440kiBまたは1'474'560バイトです。 –3番目
1 KiB (Kibibyte) = 1,024 B (Bytes) (2^10 Bytes)
1 kb (Kilobit) = 125 B (Bytes) (10^3 Bits ÷ (8 bits / byte) = 125 B)
1 kB (Kilobyte) = 1,000 B (Bytes) (10^3 Bytes)
SI接頭辞の場合も同じです。 k
(1x103)、M
(1x106)、G
(1x109)したがって、拡張によって:
1 MiB (Mebibyte) = 1,048,576 B (Bytes) (2^20 Bytes)
1 Mb (Megabit) = 125,000 B (Bytes) (10^6 Bits ÷ (8 bits / byte) = 125,000 B)
1 MB (Megabyte) = 1,000,000 B (Bytes) (10^6 Bytes)
少し異なるのは、IEC Binary Prefixes(kibi/mebi/gibiなど))です。これらは、基数10ではなく、基数2にあるためです(たとえば、すべての数値が2に等しい)。何か 10の代わりに何か)。 SIプレフィックスを使用する方がずっと簡単だと思うので、そのまま使用することを好みます。さらに、カナダ(私の国)ではメートル法を使用しているため、慣れています。たとえば、1kg = 1000g
(または1k anything = 1000 base things
)。これらのどれも間違っていたり正しいわけではありません。どちらを使用しているか、それが実際に何に相当するかを確認してください。
コメンターをなだめるために:
1 Byte (B) = 2 nibbles = 8 bits (b)
これが、16進エディタで見たことがある場合、すべてが2つの16進文字に分割される理由です。各16進文字はニブルのサイズであり、2バイトまでです。例えば:
198 (decimal) = C6 (hex) = 11000110 (bits)
シンプルで理解しやすいいくつかの基本的な用語があります。
* A bit (b) is the smallest unit of data comprised of just {0,1}
* 1 nibble (-) = 4 bits (cutesy term with limited usage; mostly bitfields)
* 1 byte (B) = 8 bits (you could also say 2 nibbles, but that’s rare)
ビットとバイト(任意のプレフィックス付き)の間で変換するには、単に乗算するか、8で除算します。素敵でシンプル。
データの大きなグループを測定する2つのシステムがあるため、状況は少し複雑になります:decimalとバイナリ。何年もの間、コンピュータプログラマとエンジニアは両方に同じ用語を使用していましたが、混乱により、最終的にいくつかの 標準化の試み の適切な接頭辞が呼び出されました。
各システムは、ビットまたはバイトのいずれかに適用できる同様のプレフィックスのセットを使用します。各プレフィックスは両方のシステムで同じように始まりますが、バイナリプレフィックスは、その後はbaby-talkのように聞こえます。
10進法は10を基数としており、10本の指があるため、ほとんどの人はこれに慣れていて快適に使用できます。バイナリシステムはbase-2であり、2つの電圧状態があるため、ほとんどのコンピューターはこれに慣れていて快適に使用できます。
10進法は、ほとんどの人にとって明白で使いやすいです(頭の中で乗算するのに十分簡単です)。各プレフィックスは1,000ずつ増加します(その理由はまったく別の問題です)。
バイナリシステムは、ほとんどのコンピューター以外の人にとって使用がはるかに困難であり、プログラマーでさえ、多くの場合、頭の中で任意の大きな数を複数にすることができません。それでも、2の倍数であることは簡単です。各プレフィックスは1,024ずつ増加します。 1つの "K"は1,024です。これは、1,000の10進数の "k"に最も近い2の累乗であるためです(これは現時点では当てはまるかもしれませんが、連続するプレフィックスごとに差が急速に増加します)。
同じプレフィックスを持つビットとバイトの数は同じです。
* Decimal:
* 1 kilobyte (kB) = 1,000 B = 1,000^1 B 1,000 B
* 1 megabyte (MB) = 1,000 KB = 1,000^2 B = 1,000,000 B
* 1 gigabyte (GB) = 1,000 MB = 1,000^3 B = 1,000,000,000 B
* 1 kilobit (kb) = 1,000 b = 1,000^1 b 1,000 b
* 1 megabit (Mb) = 1,000 Kb = 1,000^2 b = 1,000,000 b
* 1 gigabit (Gb) = 1,000 Mb = 1,000^3 b = 1,000,000,000 b
* …and so on, just like with normal Metric units meters, liters, etc.
* each successive prefix is the previous one multiplied by 1,000
* Binary:
* 1 kibibyte (KiB) = 1,024 B = 1,024^1 B 1,024 B
* 1 mebibyte (MiB) = 1,024 KB = 1,024^2 B = 1,048,576 B
* 1 gibibyte (GiB) = 1,024 MB = 1,024^3 B = 1,073,741,824 B
* 1 kibibit (Kib) = 1,024 b = 1,024^1 b = 1,024 b
* 1 mebibit (Mib) = 1,024 Kb = 1,024^2 b = 1,048,576 b
* 1 gibibit (Gib) = 1,024 Mb = 1,024^3 b = 1,073,741,824 b
* …and so on, using similar prefixes as Metric, but with funny, ebi’s and ibi’s
* each successive prefix is the previous one multiplied by 1,024
10進法と2進法の違いは小さなものから始まります(1Kでは24バイト、つまり2.4%離れています)が、レベルごとに大きくなっています(1Gでは70MiB以上、6.9%離れています)。
一般的な経験則として、ハードウェアデバイスは10進単位(ビットまたはバイト)を使用し、ソフトウェアはバイナリ(通常はバイト)を使用します。
これは、一部の製造元、特にドライブ製造装置が小数単位を使用するのを好む理由です。ドライブサイズが大きくなるため、ユーザーはWindows etを表示したときに予想よりも小さいことがわかったときにイライラします。 al。サイズをバイナリで報告します。たとえば、500GB = 476GiBなので、ドライブに500GBが含まれ、そのようにラベルが付けられている間、My Computerはバイナリ476GiB(ただし「476GB」として)を表示するので、ユーザーは不思議に思います残りの23GBは(ドライブの製造元は、ファイルシステムのオーバーヘッドが10進数と2進数の単位の違いに比べて何もないため、誤解を招く「フォーマットサイズが小さい」とパッケージに脚注を追加することがよくあります。)
ネットワーキングデバイスは、歴史的な理由でバイトではなくビットを使用することが多く、ISPは提供する接続の速度を大きくするため、ビットを使用してアドバタイズすることを好みます。1.5MiBpsではなく12Mibpsです。多くの場合、ビットとバイト、10進数と2進数を混合して照合します。たとえば、ISPが「12MBps」回線と呼んでいるものをサブスクライブして、12MiBpsを取得しているのに実際には1.43MiBps(12,000,000/8/1024/1024)しか受信しないと考えているとします。