K と k

炉辺夜話情報科学編第4夜

今では,体重を「貫」で言う人は,少なくなった.16 貫ではなく 60 kg と言い,kg(キログラム)を使う.長さも,1 里ではなく 4 km(キロメートル)である.

1 貫は,1,000 匁.1 里は,36 町.1 町は,60 間. 1 間は,6 尺.1 尺は,10 寸.また,1 丈は,10 尺である.この尺と貫を基本とする長さと重さの単位系を尺貫法と言うことは,ご存じであろう.

世界の趨勢に従い,1966年以来,国内では,尺貫法に代わり,メートル法が採用されている.1 km は,1000 m.1 m は,1000 mm.1 kg は,1000 g.1 g は,1000 mg である.

近年,合理性一辺倒が反省されて,尺貫法を完全に閉め出すことを止めたのは,ご同慶の至りである.和服を仕立てるのに,センチメートルでは実感がわかないだろう.世界的に見ると,米国やスポーツの世界では,昔ながらのヤード・ポンド法が使われている.1 マイルは,1760 ヤード.1 ヤードは,3 フィート.1 フィートは,12 インチ.1 インチは,1,000 ミルである.重さでは,1 ポンドは 16 オンスである.米国の身勝手さは置くとしても,スポーツの試合で,一々ヤードをメートルに換算していては,興趣を削ぐというものである.

ところで,尺貫法とヤード・ポンド法を比べると,合理性が全てではないけれど,10 の冪乗を基本とする尺貫法の方が,便利なように思われる.単位系というのは,それぞれの地域の生活の必要性から生まれたものが多いのだろうから,それぞれの文化を担っている.フィート(足)という単位はその典型だろう.しかし,科学技術や国際的な情報交換の場では,合理的な単位系が必要である.その点では,10 を基本とする尺貫法には,メートル法の素地があったとも言えるだろう.

メートル法では,基本的な単位に,k(キロ,1000)や m(ミリ,0.001)などの接頭語をつけて,大きな単位や小さな単位を作り出す.この他に良く使われるものに,M(メガ,1,000,000),G(ギガ,1,000,000,000),c(センチ,0.01),μ(マイクロ,0.000001)などがある.

情報処理関係では,「3.5 インチのフロッピー」などと,インチが良く使われる.米国主導の業界事情を物語るものであろう.

ところで,情報処理関係で特徴的な単位に,b(ビット,bit)がある.情報量の単位である.1 b は最小の情報量であり,二者択一の状態を確定するために必要な情報量である.パソコンなどのメモリー(RAM)の容量を表すときにも使われる.もっともこの場合は,歴史的な理由から,1 B(バイト,byte),つまり 8 b を単位に表されることが多い(但し,古くは 1 B の長さはまちまちだった).一方,通信の分野では,速度は bps(b/s)だし,大きさは octet(オクテット),つまり 8 b を使うようだ.

最近のパソコンでは,メモリーには 32 MB という,往年の大型汎用機並の容量が使われている.私が使い始めた頃のパソコンのメモリーは,640 KB が普通だった.それより大きくても,プロセッサが対応しておらず,ソフトウェアからは使いようがなかったのである.ハード・ディスクなども,当時は,40 MB で驚異だったのが,今では,ギガ単位である.例えば,あるハードディスクの仕様を見ると,63 セクター,16 トラック,2097 シリンダー,とある.1 セクター 512 B として 1082 MB,つまり,1 GB を超えているのである.

ここで,注意深い読者なら気付いたと思うが,KB と書いて,kB とは書かなかった.情報処理の分野では,1 KB は 1024 B である.ご存じの通り,この世界では 2 の冪乗が幅を利かしている.そこで,1000 に近い 2 の冪乗として 1024 を採用した.1024 は,丁度 2 の 10 乗である.通常の単位は,10 進法で 3 桁毎に区切り,それ用の接頭辞を定めており,k = 1000 である.これに対して,情報処理の分野では,2 進法で 10 桁で区切り,K = 1024 としたのである.

さて,疑い深い読者は,前述のハードディスクの容量を計算してみたかも知れない.そうすると,

512 B/セクター×63 セクター/トラック×16 トラック/シリンダー×2097 シリンダー

= 1,082,253,312 B

= 1,056,888 KB

となり, 1,056,888 KB = 1032 MB = 1.008 GB しかないではないか.確かに,1 GB を超えてはいるが,カタログの 1082 MB は大き過ぎると思うかも知れない.気を回しすぎる人なら,M = 1024 × 1024 = 1,048,576 ではなく,M = 1,000,000 を使って 1,082,253,312 B = 1082.253312 MB と計算し,容量を大きく見せかけた誇大広告と考えるかも知れない.

賢明なる読者は,どちらが正しいのか,もう気付かれたと思うが,M = 1024 × 1024 ではないのである.M(メガ)は,1,000,000 を表す接頭辞であり,k(キロ)は,1,000 を表す接頭辞,K(ケー)は,情報処理分野でのみ使われる,1,024 を表す接頭辞なのである.KB はキロバイトならず,ケーバイトである.

科学技術の基本思想に忠実で正直なメーカーは,最近では,「容量は,MB = 1,000,000 B で換算しています」と注記するようになった.「にわかパソコン博士」が世に蔓延しているからだろう.ことの本質を捉え正しく理解することと,パソコン雑誌で仕入れた情報を何の評価もせずに覚え込み,あたかも自分の知識のようにひけらかすことの違いに気付くべきである.

バイトの長さに付き,補足(2000年 4月 3日).

「国際文書第7版(1998)国際単位系(SI)日本語版」(日本規格協会,1999.11.30)に,次の記述がある.「これらのSI接頭語は,厳格に10の整数べきの意味を示している.それらを決して2の倍数(倍量)を表すために用いてはならない(例えば,1キロビットは1000ビットを表し,1024ビットではない).」(2000年 9月 4日).