ネットワークやパソコンの技術で,最近G(ギガ)という単位をよく見かけます。ギガビット・イーサネットとか,○○ギガ・ヘルツ動作のプロセッサというような使われ方です。

 ギガの前によく登場したのはM(メガ)でした。ギガとかメガというのは,もともと国際単位系(SI(エスアイ))という国際規格で決められた用語で「SI接頭辞」と呼ばれます。SIはフランス語の「Le Système International d'Unitès」に由来しています。

元々は国際標準で決められた言葉

 SI接頭辞の中でよく知られているのは,1000(=10の3乗)倍を表すk(キロ)でしょう。1kmとか1kgとか1kビット/秒のように使いますね。このほか,1/100を示すc(センチ),1/1000(=10の-3乗)を示すm(ミリ),10の-6乗を示すμ(マイクロ)なども国際単位系で決められたSI接頭辞です。

 Mは元の単位の10の6乗(=100万)倍を表します。つまり1Mビットと書くと,100万ビットを意味するわけです。G(ギガ)はMのさらに1000倍の10<の9乗(=10億)倍を表します。この先は,10の3乗倍ごとに,T(テラ),P(ペタ),E(エクサ)と続きます。このようにSI接頭辞はおおむね1000倍(10の3乗倍)ごとに決められています。つまり,GはMの1000倍です。

 しかし,コンピュータの記憶容量などを表記するときは,GがMの1024(2の10乗)倍になることがあります。例えば,ファイルのサイズやメモリー容量を表記する場合は,1Gバイト=1024Mバイトになります。同様に,1Mバイト=1024Kバイトですし,1Kバイト=1024バイトです。つまり,1Gバイト=10億7374万1824(2の30乗倍)バイトになります。

コンピュータでは1024倍

 要するに,この場合のGやMやKはSI接頭辞に似ていますが,まったく違うものなのです。厳密には「2進接頭辞」と呼び分けられます。2の10乗(1024)と10の3乗(1000)が比較的近い数値になるため,こうした流用が行われているのです。

 なぜ1024(2の10乗)ごとを使うかというと,コンピュータが2進数で動作するからです。コンピュータが2進数を扱うので,メモリーのようにデータのサイズに関連する数値は,なるべく2進数に準じた形で表現できた方が便利です。

 問題はGやMといったSI接頭辞をそのまま流用したことです。キロに関してだけは,1000倍を意味するときは小文字の「k」,1024倍の2進接頭辞なら大文字の「K」と表記して区別しています。

 コンピュータ・ネットワークの技術文書などでは両者が混在するので,見分けにくいことがあります。イーサネットや無線LAN,ADSLといった回線の伝送速度はSI接頭辞で表記します。一方,その回線を使って送るファイルのサイズは2進接頭辞になったりします。例えば「10Mバイトのファイルを11Mビット/秒の無線LANで送る」と言ったとき,前のMは2の20乗倍,あとのMは10の6乗倍を意味するのです。

 実はこうした問題を解決するため,1998年に国際電気標準会議(IEC)がSI接頭辞に「i」を付加して2進接頭辞とする表記法を承認しています。この方式では,2の10乗倍がKi(キビ),2の20乗倍がMi(メビ),2の30乗倍がGi(ギビ)となります。一目瞭然で素晴らしい解決策ですが,残念ながらあまり一般化していません。