IIJでは広報誌「IIJ.news」を隔月で発行しています。本blogエントリは、IIJ.news連載コラム「インターネット・トリビア」を転載したものです。IIJ.newsはご希望者へ郵送でお送りしています。また、IIJ WebではPDF版をご覧頂けます

IIJ.news vol.148 もくじ

iijnews148

  • ぷろろーぐ「神無月、深夜の台風」 鈴木 幸一
  • [特別対談] 人となり
    公益財団法人 東京オリンピック・パラリンピック競技大会組織委員会 会長 森 喜朗 氏
    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業界でも普及しているとは言えません。筆者自身もよほど念を入れた表記をするとき以外は、普通にキロ・メガ・ギガ・テラと表記しています。