ディスク容量の表示
パソコンデータのバックアップや持ち運びの為に、ポータブルHDDやUSBメモリを購入する機会はそこそこあると思う。
これらの機器は、USBポートに接続するだけで自動的に識別され、エクスプローラからフォルダ感覚でアクセスできるので便利だ。
ところでこんな経験はないだろうか?
エクスプローラからドライブを右クリックしてプロパティを表示すると、
1TBの外付けHDDを購入したのに、容量が931GBでびっくり。
パソコンに慣れていない人だと「不良品を掴まされた!?」と憤りたくなるだろうが、実はこれは仕様通りの表示なのだ。
そのあたりを簡単に説明したいと思う。
コンピュータと2進数
結論から言うと、コンピュータは2進数が基準だからというのが答えだ。
しかしそれだけではピンと来ないだろうから簡単な実験をしてみよう。
まずWindows標準の「メモ帳」を立ち上げる。(スタートメニューの「Windows アクセサリ」から起動)
次に半角英数の「a」を10個入力して「テスト.txt」という名前でデスクトップに保存する。
保存した「テスト.txt」を右クリックしてプロパティを開く。
(文字コードにもよるが)ファイルサイズは10バイトになるはずだ。
つまり半角英数1文字を記憶するのに1バイトを使っている。
ここでもう一度「テスト.txt」を開き「a」の個数が1000文字になるよう調整しよう。
メニューの「表示(V)」でステータスバーの表示にチェックを入れていれば、画面下にカーソル位置が表示されるので分かりやすい。
カーソル位置が1001列(入力個数が1000)になったらファイルを上書き保存。
再度プロパティをチェックすると、サイズは1000バイトになった。
この段階ではまだ1KBになっていないのがポイントだ。
もう一度「テスト.txt」を開いてあと24文字足す。
合計1024文字になったらファイルを上書き保存。
プロパティを確認。
今度は1.00KBに変わった。
つまり人間にとって1Kは1000だけど、コンピュータにとって1Kは1024という事だ。
10進数と2進数
人間は10進数で数を表現する。
10進数というのは0~9までの10通りの組み合わせだ。
一方コンピュータは0と1の組み合わせしか使えない2進数で数を表現する。
なのですぐに繰り上がりが発生する。
お年玉を「2938円」渡す人は居ないだろう。普通はキリの良い「3000円」とか「5000円」とかを渡すはずだ。
2進数も先頭以外0だとキリが良い。
人間にとっての1000はコンピュータからすると「1111101000」という1と0が入り混じった中途半端な数なのだ。
なので「1024バイトで1KB」「1024KBで1MB」「1024MBで1GB」という風に1024を基準にして単位を繰り上げている。
故に注目すべきは元のバイト数。
端数は削って「1,000,000,000,000バイト」だとしよう。
人間基準(1000区切り)だとこうなる。
1,000,000,000,000バイト
→ 1,000,000,000 KB
→ 1,000,000 MB
→ 1,000 GB
→ 1 TB
一方コンピュータ基準(1024区切り)だとこうなる。
1,000,000,000,000バイト
→ 976,562,500 KB
→ 953,674 MB
→ 931 GB
→ 0.91 TB
つまり元のバイト数は同じだけど、単位を「KB」「MB」「GB」に変える時の「割る数」が違うので結果に差が出るという訳だ。
ちなみに人間基準(1000)とコンピュータ基準(1024)が混在するとややこしいので、随分前に新しい単位が制定された。
人間基準(1000)はこうだけど、
単位 | 読み方 | サイズ |
---|---|---|
KB | キロバイト | 1000バイト |
MB | メガバイト | 1000 × 1000バイト |
GB | ギガバイト | 1000 × 1000 × 1000バイト |
1990年代にコンピュータ用(1024)に提唱されたのがこれ。
単位 | 読み方 | サイズ |
---|---|---|
KiB | キビバイト | 1024バイト |
MiB | メビバイト | 1024 × 1024バイト |
GiB | ギビバイト | 1024 × 1024 × 1024バイト |
しかしWindowsのプロパティ然り、この「KiB」「MiB」「GiB」という単位が使われている現場をほとんど見たことがない。
そもそも混同して困るケースも少なく、今回のように「新品の1TB HDD買ったのに容量が931GBしかない!」とかその程度だ。
今ではトリビアのようなミニ知識だけど、気になった人は覚えておこう。