ここでは bit と byte について復習し、更にそれ以上の単位についても学んでみたいと思います。


1. bit

皆さんご存知の通り、

「bit = 2 進数の桁数」

です。例えば2進数「0b10110」は「5桁の2進数」なので「5 bit の2進数」になります。


2. byte

これも皆さんご存知の通り

「1 byte = 8 bit」

です(※)。1 byte を16進数で表すと「0x00」から「0xFF」までの値になります。

※ 21世紀の頭までは慣例的にそうしているだけで「 1 byte = 8 bit 」という決まりはどこにも無かったのですが、いつまでもそれじゃマズいよねと言う事で 2008年にISO/IEC が正式に 「 1 byte = 8 bit 」と決めました。

なおコンピュータで扱う画像や音楽や動画やアプリなどのデータサイズは、様々な歴史的背景から今は 1 byte が最小単位となっています。
従って、例えば 10 byte のデータは「10 x 8 = 80 bit」なので「80 個の 0 と 1 から出来ているデータ」になります。


3. kB、KB、KiB

あるデータのサイズが増えてくると byte では桁数が大きくなりすぎるのでキロバイトを使って表します。
ところが何 byte を 1 キロバイトにするかを巡って世の中で混乱が生じています。

一般的には

「1 kB」と k が小文字の時は「 1 kB = 1000 byte 」

「1 KB」と K が大文字の時は「 1 KB = 1024 byte 」

と k が大文字が小文字かでバイト数が変わることになっていますが、実はちゃんとした取り決めは無いのであくまで慣例的にそうしているだけです。

それではマズいだろということで一応「KiB」(キビバイト)という単位が作られて

「 1 KiB = 1024 byte 」

となったのですが、マイナーすぎてあまり使っている人はいません。

いずれにしろ、キロバイトが何 byte なのか人によって異なるという状況が現在(2016年時点)でも続いていますので注意が必要です。


3. MB、MiB、GB、GiB、TB、TiB

更にデータサイズが大きくなるとキロバイトでも足りなくなるので、メガバイト、ギガバイト、テラバイト を使いますが、キロバイトと同様の混乱がある上に、m、g、t を大文字にするか小文字にするかという取り決めもないので更に状況がよくありません。つまり

「 1 MB = 1000 kB か 1024 KiB のどちらか 」

「 1 GB = 1000 MB か 1024 MB のどちらか」

「 1 TB = 1000 GB か 1024 GB のどちらか」

と、これまた人によって見解が異なるのでかなり注意が必要です。

一応 KiB と同様に「MiB」(メビバイト)、「GiB」(ギビバイト)、「TiB」(テビバイト)という単位が作られて

「 1 MiB = 1024 KiB」

「 1 GiB = 1024 MiB」

「 1 TiB = 1024 GiB」

となりましたが、やはり使っている人はあまりいないという状況です。