IIJでは広報誌「IIJ.news」を隔月で発行しています。本blogエントリは、IIJ.news連載コラム「インターネット・トリビア」を転載したものです。IIJ.newsはご希望者へ郵送でお送りしています。また、IIJ WebではPDF版をご覧頂けます。
IIJ.news vol.148 もくじ
- ぷろろーぐ「神無月、深夜の台風」 鈴木 幸一
- [特別対談] 人となり
公益財団法人 東京オリンピック・パラリンピック競技大会組織委員会 会長 森 喜朗 氏
IIJ 代表取締役社長 勝 栄二郎- Topics デジタル通貨とディーカレット
- デジタル通貨市場を切り拓くディーカレット(DeCurret)
- デジタル通貨とプラットフォーム
- なぜ、今、キャッシュレスなのか
- 常識を打ち破るデジタル・イノベーションへの対応
- 仮想通貨と暗号技術
- 人と空気とインターネット: 個人データは誰のもの?
- Technical Now: エンドポイント向けセキュリティサービス
- インターネット・トリビア: キロバイト・メガバイト・ギガバイト・テラバイト ※この記事で掲載
- グローバル・トレンド: 中国のキャッシュレス化とサイバーセキュリティ法
- ライフ・ウィズセーフ: 脆弱性を指摘するとき
それぞれの記事はIIJ.news PDF版でお読み頂けます。
インターネット・トリビア: キロバイト・メガバイト・ギガバイト・テラバイト
11キロバイトの Excel ファイル、3メガバイトの写真、8ギガバイトのUSBメモリ、2テラバイトのハードディスク……。コンピュータを使っていると「量」を表す表現がたくさん出てきます。これらは数値に対し、「キロ(K)」「メガ(M)」「ギガ(G)」「テラ(T)」という「接頭辞(ルビ:せっとうじ)」と、「バイト(byte)」という量の単位を組み合わせた表現方法です。
「コンピュータの基本単位は二進数で、『0または1』を表す1ビット(bit)」「1ビットを8つ並べたのが1バイト」ということは広く知られていますが、最初から「1バイト=8ビット」だったわけではありません。コンピュータ黎明期には、8ビット単位以外でデータを取り扱うコンピュータが多数ありました。例えば、一九七〇年代から販売されているNECの大型コンピュータACOS-6シリーズは、9ビットを1バイトとして扱い、それを4つ並べたもの(つまり、36ビット)を1ワード(word)と呼んで、基本単位としていたということです。これ以外にも、1バイトが6ビット、7ビット、10ビット、11ビットなど、さまざまなコンピュータが存在していましたが、広く普及したコンピュータが「1バイト=8ビット」を採用していたため、それが事実上の標準となったそうです。
「1バイト=8ビット」が公式に定義されたのは意外に遅く、二〇〇八年でした(IEC 80000-13:2008)。それ以前でも「1バイト=8ビット」と理解して差し支えなかったのですが、明示的に「8ビットである」ことを示したい場合には、バイトに代わり数字の8を表す「oct」から派生した「オクテット(octet)」を使うこともありました。
キロ・メガ・ギガ・テラという接頭辞はコンピュータ独特のものではなく、日常的に使われています。特に「キロ」は、長さを示す「キロメートル」や、重さを示す「キログラム」として頻繁に目にします。メガ・ギガ・テラを目にすることは多くありませんが、最近では、大規模な太陽光発電所を指す「メガソーラー」などとして使われています(発電能力が1メガワット=100万ワットを超えるクラスの太陽光発電所という意味)。
さて、キロ・メガ・ギガ・テラは、国際単位系(SI)において、それぞれ1000(10の三乗)、100万(10の六乗)、10億(10の九乗)、一兆(10の一二乗)を表すと定義されています。コンピュータの世界でもこの単位を踏襲していますが、コンピュータの基本がビット(二進数)であるがゆえに、困ったことが発生してしまいます。
日常使われている十進数では10、100、1000のように10のべき乗で桁が大きくなりますが、二進数では2のべき乗で桁が増えていきます。接頭辞においても2のべき乗が基本となるので、キロは1024(2の一〇乗)、メガは104万8576(2の二〇乗)、ギガは10億7374万1824(2の三〇乗)、テラは1兆0995億1162万7776(2の四〇乗)を表します。
「100キロバイト」は、SIにもとづけば10万バイトを示しますが、コンピュータの世界では10万2400バイトとなり、2400バイト分のズレが生じてしまいます。近年はコンピュータで扱うデータ量が大きくなっており、このズレはより顕著です。例えば「4テラバイト」は、SIとコンピュータの世界で3980億4651万1104バイトのズレが生じます。これはもとの容量の約一〇パーセントに達します。
そこで、SIの接頭辞とは別に、コンピュータなどの二進数における接頭辞が新たに定められ(IEC 80000-13:2008)、キロ・メガ・ギガ・テラに対応するものとして、キビ(Ki)・メビ(Mi)・ギビ(Gi)・テビ(Ti)が定義され、これらを「二進接頭辞」と呼んでいます(例えば、従来「4テラバイト」と書いていたものは「4テビバイト」となる)。
ただ、残念ながら、この二進接頭辞はIT業界でも普及しているとは言えません。筆者自身もよほど念を入れた表記をするとき以外は、普通にキロ・メガ・ギガ・テラと表記しています。