【IT】Windows上で見たHDDやSSD・USBメモリ等のディスク容量がメーカーカタログよりも少なく表示される理由

Windowsで表示されるディスク容量

ディスク容量の表示

パソコンデータのバックアップや持ち運びの為に、ポータブルHDDやUSBメモリを購入する機会はそこそこあると思う。

ポータブルHD

これらの機器は、USBポートに接続するだけで自動的に識別され、エクスプローラからフォルダ感覚でアクセスできるので便利だ。

ところでこんな経験はないだろうか?

エクスプローラからドライブを右クリックしてプロパティを表示すると、

右クリックからプロパティを表示

1TBの外付けHDDを購入したのに、容量が931GBでびっくり。

1TBのHDDなのに931GBしかない

パソコンに慣れていない人だと「不良品を掴まされた!?」と憤りたくなるだろうが、実はこれは仕様通りの表示なのだ。

そのあたりを簡単に説明したいと思う。

コンピュータと2進数

結論から言うと、コンピュータは2進数が基準だからというのが答えだ。

しかしそれだけではピンと来ないだろうから簡単な実験をしてみよう。

まずWindows標準の「メモ帳」を立ち上げる。(スタートメニューの「Windows アクセサリ」から起動)

メモ帳を起動

次に半角英数の「a」を10個入力して「テスト.txt」という名前でデスクトップに保存する。

半角aを10個入力して保存

保存した「テスト.txt」を右クリックしてプロパティを開く。

(文字コードにもよるが)ファイルサイズは10バイトになるはずだ。

つまり半角英数1文字を記憶するのに1バイトを使っている。

ファイルサイズは10バイト

ここでもう一度「テスト.txt」を開き「a」の個数が1000文字になるよう調整しよう。

メニューの「表示(V)」でステータスバーの表示にチェックを入れていれば、画面下にカーソル位置が表示されるので分かりやすい。

カーソル位置が1001列(入力個数が1000)になったらファイルを上書き保存。

半角aを1000個入力して保存

再度プロパティをチェックすると、サイズは1000バイトになった。

この段階ではまだ1KBになっていないのがポイントだ。

ファイルサイズは1000バイト

もう一度「テスト.txt」を開いてあと24文字足す。

合計1024文字になったらファイルを上書き保存。

半角aを1024個入力して保存

プロパティを確認。

今度は1.00KBに変わった。

ファイルサイズは1KB

つまり人間にとって1Kは1000だけど、コンピュータにとって1Kは1024という事だ。

10進数と2進数

人間は10進数で数を表現する。

10進数というのは0~9までの10通りの組み合わせだ。

10進数の表現

一方コンピュータは0と1の組み合わせしか使えない2進数で数を表現する。

なのですぐに繰り上がりが発生する。

2進数の表現

お年玉を「2938円」渡す人は居ないだろう。普通はキリの良い「3000円」とか「5000円」とかを渡すはずだ。

2進数も先頭以外0だとキリが良い。

人間にとっての1000はコンピュータからすると「1111101000」という1と0が入り混じった中途半端な数なのだ。

10進数と2進数ではキリの良い値が違う

なので「1024バイトで1KB」「1024KBで1MB」「1024MBで1GB」という風に1024を基準にして単位を繰り上げている。

故に注目すべきは元のバイト数。

1KBを1000バイトで計算すれば容量は1TBある

端数は削って「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しかない!」とかその程度だ。

今ではトリビアのようなミニ知識だけど、気になった人は覚えておこう。