Column 22年7月 データ量の単位

単位の歴史

長さの単位を尋ねられて、どんなものが浮かびますか? 定規やメジャーだとmm、cm、mが使われていますし、自転車のタイヤやテレビの画面サイズだとinchが使われることが多いですね。日本古来の単位では寸や尺といった尺貫法もあります。
古来から、さまざまな国で、さまざまな長さの単位が使用されてきました。現在では、世界共通の単位を使用するメリットから、多くの国で基本の単位としてメートルが使われています。

kは103

1kmは1000mです。長さだけでなく、重さでも1kgは1000gというように「k(キロ)」は1000倍を表すことがわかります。これはSI接頭語と呼ばれているもので、「k」以外にも、106倍を表す「M(メガ)」や109倍を表す「G(ギガ)」など、たくさんあります。
メガ、ギガという単位を聞いて、スマートフォンやSDカードなどのデータ容量を思い浮かべた方も多いのではないでしょうか。メートルやグラムの例を適用すると、1MB(メガバイト)は1000KB(キロバイト)、1KBは1000B(バイト)、ですよね。これは正しいのでしょうか?
答えは、正しいともいえるし、正しくないともいえるのです。いったいどういうことなのでしょうか。

1000倍と1024倍

コンピュータでは「0」か「1」かの2つの状態を組み合わせることでデータを処理します。そのため、1桁で表せる数は2つ、2桁で表せる数は4つといった2進法の考え方を使います。従って、ぴったり1000倍という数を表すよりも、2を10回かけた1024倍という数ごとに異なる単位としたほうが都合がよく、1KBを1024Bとしてきました。しかし一方で、わかりやすさのために1000Bを1KBとする例もあり、混乱も生じています。そのため、最近では1KBは1000Bとし、1KiB(キビバイト)を1024Bとする表記方法もあります。
何気なく使っている「1KB」ですが、1000Bを表す場合と1024Bを表す場合があるので、「“1KBは1000B”は、正しいともいえるし、正しくないともいえる」のです。

使い分ける必要はあるの?

「kが1000倍でも1024倍でも、どっちでもいいんじゃないの?」
と思われる方もいらっしゃることでしょう。しかし、いまや「ギガ」の単位を扱う時代。1000倍なのか1024倍なのかで、大きな(?)問題も生じています。

ハードディスク・ドライブのラベルに記載されているより少ない容量が報告されるのはなぜでしょうか?
https://www.seagate.com/jp/ja/support/kb/why-does-my-hard-drive-report-less-capacity-than-indicated-on-the-drives-label-172191en/
ハードディスクメーカーのウェブサイトに掲載されている記事です。この記事のように、「せっかく1TBのハードディスクを買ったのに、Windowsで調べてみたら、1TBより少ない容量しかなかった!」という経験をお持ちの方もいらっしゃるかもしれません。
これこそが、話題にしている「KB」と「KiB」の問題なのです。1000倍と1024倍は、最初は小さな差しかありませんが、キロ、メガ、ギガ、テラ……と単位があがっていくにつれて差が大きくなっていきます。これから先、より扱うデータのサイズが大きくなることも考えられることから、KBやMBにかわって、KiBやMiBが使われるようになっていくかもしれませんね。