◆ | 接頭語の覚え方 |
S: | その便利な表現方法をこれからは使えなくなるの? |
K: | うん、問題はそこなんだよ。K(=1024)の表記法も問題だけど、その上の単位のM(メガ)やG(ギカ)にも別の問題があることが分かってきた。 |
S: | 別の問題? ちょっと待ってくれよ。その前に、そんなに色々な単位があるのかい? 知らなかったなあ。それを先ず説明してくれよ。 |
K: | いや単位というより、正確には接頭語というのかな。ある数量を表現するのに大きさからいってもっとも相応しい単位というのがあるだろう。たとえば、国家予算のような大きな額は“円”の単位よりも“兆円”とか“千万円”の単位で表現した方が便利なように、十、百、千、万という具合に接頭語を使うだろ。 |
S: | うん、うん。 |
K: | それと同じで、10の3乗の間隔で接頭語が定義されている。この表を見てごらん。 |
|
| 表:接頭語の一覧
接頭語 |
読み |
つづり |
位取り |
Y |
ヨタ |
yotta |
1024 |
Z |
ゼタ |
zetta |
1021 |
E |
エクサ |
exa |
1018 |
P |
ペタ |
peta |
1015 |
T |
テラ |
tera |
1012 |
G |
ギガ |
giga |
109 |
M |
メガ |
mega |
106 |
k |
キロ |
kilo |
103 |
h |
ヘクト |
hecto |
102 |
da |
デカ |
deca |
101 |
d |
デシ |
deci |
10−1 |
c |
センチ |
centi |
10−2 |
m |
ミリ |
milli |
10−3 |
μ |
マイクロ |
micro |
10−6 |
n |
ナノ |
nano |
10−9 |
p |
ピコ |
pico |
10−12 |
f |
フェムト |
femto |
10−15 |
a |
アト |
atto |
10−18 |
z |
ゼプト |
zepto |
10−21 |
y |
ヨクト |
yocto |
10−24 |
接頭語 |
読み |
つづり |
位取り |
|
S: | ずいぶんと、いろいろな接頭語があるね。大半は知らないものばかりだ。 |
K: | キロからミリまでは10倍間隔で、これはよく知られているやつだ。 |
S: | ああ、覚え方は知っている。『キロキロとヘクトデカけた‥‥』というやつだろ。 |
K: | そう、そう。子供の頃よく『キロ(k)キロとヘクト(h)デカ(da)けたメートルがデシ(d)に追われてセンチ(c)ミリ(m)ミリ』といって覚えた記憶があるだろう。この“キロからミリ”までの部分の呼び方が国際的に正式に決められたのは1795年なんだ。 |
S: | ずいぶんと昔だね。 |
K: | その後1960年に「テラ、ギガ、メガ」と「マイクロ、ナノ、ピコ」が追加された。 |
S: | 全部が一度に決められたんじゃないの。道理で知らないものが多い訳だ。 |
K: | 1964年に「フェムト、アト」が追加された。 |
S: | ほう。 |
K: | そして、1975年になって「エクサ、ペタ」が追加された。 |
S: | ほう、ほう。 |
K: | さらに、最近になって「ヨタ、ゼタ、ゼプト、ヨクト」が追加された。 |
S: | ほう、ほう、ほう。 |
K: | ほうほうと、ふくろうみたいな声ばかり出すなよ。 |
S: | だって、そう説明されても、俺には到底覚えられないもの。 |
K: | こうやって見ると、200年近く“キロからミリ”の範囲で事が済んでいた社会が、最近の急速な技術革新にともなって日常必要とする数値の範囲が急速に広がってきたことが理解できると思う。 |
S: | なるほど。それは私にも理解できるね。 |
K: | じゃあ、この表の覚え方を伝授してあげようか。 |
S: | ああ、そう願いたいね。 |
K: | これは、僕が考案した覚え方なんだ。本邦初公開だからね。 |
S: | もったいぶるねえ。 |
K: | いいか、よく聞いていろよ。“YからMまで”の覚え方だ。『ヨタってもゼタいやめないエクササイズ。ペタンこ鼻がテラテラ光るギガんメガネの大門じいさん』て言うんだ。 |
S: | なになに? 大門じいさんが、どうしたって?
|
K: | いいか、大門じいさんは年寄りなんで多少ヨタヨタしているが、頑固だからスポーツジムでの体操(エクササイズ)は絶対にやめないと言い張っているんだ。ペタンコの鼻の頭を汗でテラテラ光らせて、片方義眼なのにメガネを掛けて頑張っているという意味だよ。 |
S: | う〜ん。もう一度言ってよ。 |
K: | いいか、もう一度だけ言うからよく聞いて覚えろよ。『ヨタ(Y)ってもゼタ(Z:絶対)いやめないエクサ(E)サイズ。ペタ(P)ンコ鼻がテラ(T)テラ光る、ギガ(G)ん(義眼)メガ(M)ネの大門じい(大文字)さん』て言うんだ。 |
S: | 最後の“大門じいさん”というのは余計じゃないか。 |
K: | この“YからMまで”は、すべて大文字で書けという意味だよ。 |
S: | ああ、なるほど、なるほど。 |
K: | 言ってごらん。 |
S: | 『ヨタってもゼタいやめないエクササイズ。ペタンコ鼻がテラテラ光るギガんメガネの大門じいさん』。 |
K: | そう、そう。うまい、うまい。 |
S: | そうか、じゃあ後半の小さい方はどうやって覚えるの。 |
K: | よくぞ聞いてくれた。これを作るのにはずいぶんと苦労したよ。 |
S: | それも自分で考えたの? 好きだねえ。 |
K: | そうともさ。いいか、こう言うんだ。『マイクロナノにピコピコ鳴ってエッフェムトうへアトムは飛ぶぞゼプト気流つヨクトも』 え、どうだ。 |
S: | もっとゆっくりと言って、解説してくれよ。 |
K: | つまりだ。最近のマイクロコンピュータはマルチメディア対応とか言って、多機能になってきている。あんな小さなものナノに、ピコピコ音を鳴らしてゲームもできるし、TV画面の表示などもできる。すると当然TV漫画が見られるから、エッフェル塔に登った怪獣を退治しに鉄腕アトムが飛んでいくという図を想像してみなよ。そのとき、ジェット気流が強くてもアトムはひるまないという意味なんだ。 |
S: | う〜む。後半がちょっと苦しいなあ。もう一度お願いしましょうか。 |
K: | 『マイクロ(μ)[コンピュータ]ナノ(n)にピコ(p)ピコ鳴って、エッフェムト(f)う(エッフェル塔)へアト(a)ムは飛ぶぞ、ゼプト(z:ジェット)気流つヨクト(y)も(強くとも)』。 |
S: | 苦心の作だということは分かるが、後半ちょっと訛るのがご愛嬌だね。 |
K: | いや、むしろ訛ったまま発音するのがコツなんだよ。昔覚えた“キロキロとヘクトデカけた‥‥”よりは、だいぶ自然な文章になっているだろう。だいいち“ヘクト出掛ける”って、どういう出掛け方なんだい? 僕は子供の頃から疑問に思っていたことなんだがね。 |
S: | それもそうだ。ついでにその溢れるような創作力で“キロからミリまで”も作り変えたらいいのに。 |
K: | いや、この部分は手を付ける気はないね。昔からの覚え方が定着しているし、「ヘクト、デカ、デシ」なんかは、ほとんど日常使わないから、今更作っても意味がないよ。 |
◆ | あいまいな定義 |
S: | そんなもんかねえ〜。そうか、それで分かったよ。さっき言っていたM(メガ)やG(ギガ)での問題というのが。 |
K: | お、さすがだねえ。 |
S: | M(メガ)以上は全部大文字表記なので、1024を大文字のKで表現するというコンピュータ界の便法が、その先では適用できなくなるということだろ。 |
K: | まあ、大体そんなところだね。ただ、僕の言いたいのは大文字という表記の問題だけじゃないんだ。それを少し詳しく説明してあげよう。まずK=1024と定義すると、当然のことながらM=1024Kでなければならない。 |
S: | どうして“当然”なの。 |
K: | だって、k=1000(10の3乗)のときは、次のMまでは10の3乗間隔だったろう。K=1024(つまり2の10乗)だったら、次も2の10乗間隔にしなければおかしいじゃないか。したがって、M=1024Kとするのが自然だ。そこに電卓があるから、1Mの値を計算してごらん。 |
S: | そうか。すると1Mを正確に計算すると‥‥、
1024×1024=1,048,576
となる。 |
K: | そう。1,048,576は1,024,000とたいして差はないから、K=1000と定義しようがK=1024と定義しようが、これを1M=1024Kと書くことに、そう違和感は感じないだろう。 |
S: | うむ、うむ。 |
K: | でも、次のギガ(G)になるとそうはいかない。
1024×1024×1024=
1,073,741,824
となるから、1Gを約1000Mとみなすのは少し抵抗を感じる。そうかといって1G=1024Mとするのも変だ。段々と誤差が積み重なってきて10進での値と一致しなくなってくる。1G=1024Mではなく、1G=1073Mと書きたくなるからね。 |
S: | なるほど。 |
K: | 大容量の補助記憶装置としてハードディスク(HD)というのがあるだろ。不思議なことに、ハードディスクの容量はK=1000,M=1000K,‥‥で表現するように統一されている。 |
S: | へえ〜。 |
K: | 一方、メモリの大きさを表現したりプログラマがアドレス計算をする場合には、さっきも言ったようにK=1024,M=1024K,‥‥でやる習慣になっているんだよ。 |
S: | 何だ、ソフトウェア技術者の定義とハードウェア技術者の定義が異なっているということじゃないか。 |
K: | そうかもしれないが、それ程単純な話でもないらしいよ。たとえば、もっと小容量の補助記憶装置として広く使われているフロッピーディスクというのがあるだろ。 |
S: | うむ。 |
K: | フロッピーディスクには、記憶できる容量にしたがって名前が付けられている。たとえば、2DD、2HDとか、1.2M形式、1.44M形式、2.88M形式とか呼ばれている。 |
S: | うむ、うむ。それで? |
K: | たとえば、1.44M形式というフロッピーディスクは、80トラック、2シリンダ、18セクタ、512セクタ長のフォーマットで記録できるようになっている。 |
S: | トラック、シリンダ‥‥などと言われても何のことやら分からないよ。 |
K: | そうか、失敬、失敬。まあ、ここでは、記録するための領域の名称だと思っていればいいよ。 |
S: | そういうことにしておこう。 |
K: | 1枚のディスクには80個のトラックがあり、1トラックは2シリンダから成り、1シリンダは18セクタで構成されている。そして1セクタの長さは512バイトなので、全体では
80×2×18×512=1,474,560
という計算になるから、1,474,560バイト分の情報が記憶できることになる。分かるかな? |
S: | う〜む。まあ、分かったことにしよう。 |
K: | そこで、この1,474,560バイトが何Mバイトになるか換算してみよう。まず、K=1024とすると
1474560÷1024=1440K
だから、1440Kバイト記憶できることになる。さらにKをMに換算すると
1440K÷1024=1.40625M
だから、1.44M形式のディスクには約1.41Mバイト記憶できるというわけだ。 |
S: | おかしいじゃないか、1.44Mバイト記憶できるから1.44M形式というんじゃないのかい。 |
K: | そこなんだよ、僕がおかしいと言うのは。ところが不思議なことに、M=1024Kではなく、M=1000Kと定義すると
1440K÷1000=1.44M
となって、ちょうど1.44になり、名前のとおりになる。 |
S: | 一体、誰が1.44M形式などという名を付けたんだい? |
K: | アメリカの某社だろうと思うよ。それもソフトウェアのことは余り知らない人じゃないのかなあ。 |
S: | どうして? |
K: | だって、意図が見え見えなんだよ。フロッピーディスクの設計者なら誰でも記憶容量をできるだけ多く見せたいと思うだろう。だとすると、正確な数で1,474,560バイトを用いて1.47M形式としたいじゃないか。 |
S: | なるほど。しかし1.44M形式と命名した。たとえば君のようなソフトウェア屋さんが決めたら、M=1024Kとして1.40625Mとなるから、1.4M形式とするところだね。 |
K: | しかしそうすると容量がだいぶ減ってしまって印象が悪い。そこで、M=1000Kの計算で1.44M形式としたんだと思うよ。これは僕の推量だがね。 |
S: | すると何かい、アメリカではMは1000Kという定義になっているというのかい? |
K: | そうなんだ。このいい加減さに、ほとんどの人は気が付いていない。 |
K: | どうもアメリカでは、Kは1024と厳密には定義していないように思えるんだ。 |
S: | え? アメリカではK=1024ではないの? |
K: | いや、そういう意味ではなく、1024を概略1000とみなす習慣はあるけれど、ただそれだけのことであって、「大文字のKは1024のことですよ」とは明確に定義していないような気がするんだ。 |
S: | M以上になると、例の大文字表記の便法は使えないから、あいまいにしておいた方がいいのかもしれないね。 |
K: | そう。キロはあくまでも“k”であって、それを場合によって1000とか1024とかに使い分けている、というのが実態じゃないかと思うよ。日本の得意とする“あいまいな”定義になっているんじやないのかな。 |
S: | ふ〜ん。 |
S: | すると何かい、メモリとフロッピーディスクとハードディスクでは同じバイト単位の容量でも、それぞれ皆大きさが違うというのかい? 驚いたねえ。 |
K: | そう。ソフトウェア技術者の定義とハードウェア技術者の定義が異なるといったような単純な問題ではないんだよ。 |
S: | フロッピーディスクの設計者というのは、ソフトウェア技術者でもないしハードウェア技術者でもないんじゃないの。変な話だねえ。 |
K: | 要するにアメリカでは定義があいまいになっていて、場合によって適当に使い分けているというのが実態なんだ。逆に日本では厳密に考え過ぎているきらいがあるのかもしれない。 |
S: | なるほど、日本も“K”の定義はあいまいにしておいた方がいいのかもしれないね。そう考えれば国際単位系とやらの規則との整合性で、そう悩むことはない訳だ。 |
K: | それがいいのかどうかは分からないけど、「あいまいな日本の私(K)」としておいた方が悩まなくてすむというわけだよ。■
【器用なプログラマの法則】
◆プログラマは、アドレス計算は K=1024 で行うが、お金の計算は K=1000 で行う。
(解説:たとえば、10K番地といえば10240番地のことだが、
10K円と書けばこれは一万円のことである ) |