#138 2進法とメディアの容量

2000/10/11

<前目次次>


 我々人間が通常扱う数字の多くが10進法であるのに対し、コンピュータが扱う数字はほとんど2進法である。2進法は、例えば電子回路上で「電流が流れている/流れていない」といったような「2つに1つ」という情報をそのまま数字にしたものなので、設計が非常に簡単になる、というのが主な理由である。

 10進法の場合、1桁に0〜9の10種類の数字で10種類の数が扱えるのに対し、2進法の場合は、1桁では当然0か1の2種類の数しか扱えない。10進法なら3桁で0〜999の実に1000の数字が扱えるのに対し、2進法なら高々8までだ。

 2進法の10は10進法では2である。同様に2進法の100,1000,10000をそれぞれ10進法で表して行くと、4,8,16…と、当然のことながら2の等比数列になる。以降この数列は、32,64,128,256,512,1024…と続いていく。

 偶然ではあるが、2の10乗、すなわち2進法の10000000000は10進法の1024になり1000に非常に近い。2の常用対数値が0.3010…という数字なので、2の10乗のそれはその10倍の3.010…となり、3すなわち1000の常用対数値に非常に近いわけである。そのためコンピュータの世界では、主に容量計算などの際に、1024byteすなわち2の10乗byteを1k(キロ)byteと表すことが多い。従って通常10の6乗を表す1M(メガ)byteは、コンピュータの世界では2の20乗すなわち1048576byteを表す。同様に2の30乗byteが1G(ギガ)byteであり、2の40乗byteが1T(テラ)byteと表される。

 コンピュータは何かと2進法と親和性が高いので、この方法を使うのは合理的と言えば合理的なのだが、それでも1000と1024はぴったり同じと言うわけではないので、時として誤解や混乱を招くことが多い。

 例えば昔、2HDのフロッピーディスクには、1.2Mbyteのフォーマットと1.44Mbyteのフォーマットがあった。前者は主にNECのPC-9801シリーズで使われていたフォーマットであり、後者は一般的なIBM PC/AT互換機で使われていたフォーマットなのだが、両者の正確な容量は何バイトかご存知だろうか。答えは1.2Mbyteの方が1,250,304byte、後者が1,457,664byteである。前者は1,048,576で割ってMbyteに直すと約1.192Mbyteなので、まあ1.2Mbyteと言ってもぎりぎり嘘ではないが、後者はMbyteに直すと1.390Mbyte。明らかに1.44Mbyteより少ない。どうも1000000byte=1kbyteで計算して1.44Mbyteと称しているようだ。このように、容量計算の時に限ってなぜか1000byte=1kbyteで計算して、少しでも容量を多く見せているケースがままある。

 まあフロッピーの場合はまだいい。誤差と言ってもせいぜい数10kbyteのことだから目くじらを立てる程のことでもない。しかしMOなどの大容量媒体になってくると、この差はだいぶ大きく感じられる。例えば単密度の128MbyteのMOの実際の容量は127,250,432byte=121Mbyteだ。1000000=1Mbyteで計算しても1Mbyte程少ないのは、ファイルの管理情報などが入る領域だから目をつぶるとしても、ちゃんとしたMbyteで表すと実に7Mbyteも違っているのは、何だか腑に落ちない。

 同様に倍密度のMOでは230Mbyteと書いてあるが、Windowsでフォーマットしたところ、実際には228,376,576byte=217Mbyteで、看板と13Mbyteの違い。段々「話が違うのではないか」という気がしてくる。最近では1.3GbyteのMOなんてのもあるが、実際の容量を調べてみると、1,232,928,768byte=1.14Gbyteであった。実に0.16Gbyteの差である。最初の単密度のMO1枚分以上も差があるではないか。だんだん騙された気になってくる。

 同じことはHDDでもあてはまる。メーカーによっても違うのだが、多くの場合は容量計算の時に限って1k=1000で計算しているようだ。最近ではIDEのHDDで81.9Gbyteなどというものもあるらしいが、もし81.9Gbyte=81,900,000,000byteで計算しているとしたら、ちゃんとしたGbyteに直すと76.3Gbyte弱にしかならない。実に5.6Gbyte以上の水増しだ。これはもう明らかに虚偽表示である。と思ったら大抵の製品には箱に小さく「1kbyte=1000byteで計算しております」などと書いてある。何だかずるいぞ、と思ってしまうこと度々なのである。

 ちなみにこの81.9GbyteのHDDは、kakaku.comによると、最安店で27,600円なのだそうだ。私が昨年買ったSCSIの8.3GbyteのHDD(これだって実際の容量は7.7Gbyteくらいしかない)とほとんど同じ値段ではないか。全くもって割り切れない気分である。


<前目次次>