近ごろ、いろいろな場面で「メガ」「ギガ」「テラ」という単語を見聞きすることが多くなりました。これらは「メガバイト」「ギガバイト」「テラバイト」という、コンピューターが扱うデータの容量を表す単位です。
ここでは「テラバイト」などの大きな単位の基本となる、「ビット」や「バイト」という、コンピューターで扱う基本的な単位について説明します。
8ビット集めた1バイトが処理の最小単位
コンピュータは情報を0か1で処理します。正確には電圧が高いか低いかで処理するのですが、人間にとってわかりやすいように電圧が高いときを1、低いときを0として2進数に置き換えています。2進数とは、1桁で0か1のどちらかを表す数え方です。
わたしたちが普段の生活で使っている10進数は、0から9までが1桁、10から99までが2桁というように桁が繰り上がりますが、2進数では0、1の次は10、11、次は100、110、111と繰り上がります。
2進数は1桁で0か1のどちらかしか扱えませんが、コンピューターにとっては電圧の高低を利用して計算できるので都合がいいんですね。つまり、どんなに複雑な処理でも、コンピューターは0と1に分解して計算しているということです。
2進数は英語で「binary digit」と言いますが、これを縮めてビット(bit)という単位が生まれました。この1ビットがコンピューターの最も小さな計算単位です。ただし1ビットでは単位としては小さすぎるので、実際には8ビットをひとまとめにした1バイト(Byte)が処理の最小単位となっています。
どうして1バイトが最小単位かというと、1バイトあれば英語圏の文字情報、つまり半角の英数字がすべて表現できるからです。
2進数が8桁あると、28で256となります。256通りの文字が扱えれば、アルファベットの大文字・小文字、数字、その他の記号を含めても間に合う情報量になります。実は1バイト=8ビットではないコンピューターもありますが、今のほとんどのコンピューターでは、1バイト=8ビットとなっています。
1キロバイトは1000バイト? それとも1024バイト?
ビット(bit)を単位表記するときは小文字の「b」、バイト(Byte)は大文字の「B」を使って表します。わかりにくい場合は、略さずに8bitsとか、1Byteと書きます(2以上は複数形)。
ちなみにバイトがつく単位を小さな順から並べてみると、バイト、キロバイト、メガバイト、ギガバイト、テラバイトとなります。ここまでは現在よく使われる単位ですね。そしてさらにペタバイト、エクサバイト、ゼタバイト、ヨタバイトと、まさに天文学的な数値へと続いていきます。これらの単位は一般的に、1000ごとに繰り上がっていきます。
1000バイト=1キロバイト
1000キロバイト=1メガバイト
1000メガバイト=1ギガバイト
・・・・・
という具合に換算されます。ところが1000単位で繰り上がる数え方とは別に、1024ごとに繰り上がる数え方もあります。
先ほど書いたとおり、コンピューターは2進数で処理するので、実際には1キロバイト=1024バイトのほうが正解です。ただ1024とか2048では人間にとってはわかりにくいので、「細けーことはいいんだよ!」な感じで、1000バイト=1キロバイトとされることが多くなっています。
つまりコンピューターとしては2進表記が正しいけれど、人間にとってはアバウトでもメートル表記のほうが理解しやすいということですね。ただし、1000ごとに繰り上げる場合は、桁数が多くなるほど誤差は大きくなることに注意が必要です。