1テラ搭載と書いてるのに1テラ無いんだけど

ハードディスク

1TBのHDDがWindowsで認識される容量は約931GBになります。
なぜでしょうか。

メートル法

いきなり話は逸れたように思いますが。

まずはじめに、現代日本人に(というより、アメリカと一部の国以外で)馴染みのある長さの単位であるメートル(メートル法)を含む、国際的に定めた単位を取り扱う体系を国際単位系(SI)といいます。

例えば、「1000メートルは1キロメートル」といいます。
この「キロ」のことをSI接頭辞といいます。

現在のところ、距離を表すときには使いませんが、
キロの1000倍がメガ、その1000倍がギガ、その次がテラのように、1000(10の3乗)倍毎に接頭辞が変わります。
こうすることで、大きな桁数を縮めて表現することができるようになりました。

余談ですが、日本人が数えるときになじみのある一・十・百・千・万の漢数字の位取りは、以降、10000(10の4乗)倍毎に億、兆と進んでいきます。
数字が嫌いな人は、このあたりでキャッキャがきます。

このことから、私たちが普段数字を扱うときに使う10進法でいうと、1TB=1,000,000,000,000バイト(1兆)になります。
大きい桁を数えるときは、4桁毎に線を引くテクニックが有名です。
1|000,0|00,00|0,000

データ量を表す単位

一方、コンピュータが取り扱うデータ最小単位は0と1(2進法)です。
これをbit(ビット)といいます。

つぎに、現在の私たちがコンピュータのデータの量を言うとき、単位をbyte(バイト)といいます。

そして1バイトは8ビットと定義されています。

つまりデータの量は、ビット(2進数)の集まりですから、2の乗数で成り立っていると言えます。

今日のように、扱うデータの量が増えてくると、やっぱり接頭辞を付けて扱う桁数を縮めたいのが人情ってもんでしょう。

SI接頭辞では、10の3乗(1000)毎に接頭辞をつけるようになっていましたので、
データの量を数えるときも1000毎に接頭辞をつけようとしましたが、2の乗数にはちょうど1000はありません。

そこで1000に近い2の乗数の1024(2の10乗)毎に接頭辞を付けることにしました。
これを、2進接頭辞といいます。

したがって、データの量を表すときに位取りをするときは1024毎に行います。

  • 1KiB = 1,024Byte
  • 1MiB = 1,024KiB = 1,048,576Byte

いま、誤解を避けるようにあえて2進接頭辞で書きました。
KiBやMiBのように「i」が挟まっているやつです。
キャッキャがきましたか?

ところがコンピュータの画面上では、誤解を避けず「i」の付いていない接頭辞で表記するのが通例になっています。
もちろん誤解を招くつもりはないのでしょうが、少なくとも「i」がありません。
愛がありません、なんつって。(えっ!?)

※律儀に2進接頭辞で表記しているアプリもあります。


ここまでくれば、冒頭の「1TBのHDDがWindowsで認識される容量は約931GBになる」ことがわかりましたね。

1TBの1,000,000,000,000Byteを位取りしていくと、
(‭1024毎ですから1024で割っていきます)

  • 976,562,500‬KiB
  • ‭953,674.31640625‬MiB
  • ‭931.3225746154785‬GiB

そして、931GBとなるのです。
愛がありませんので。

同じ理由で、4.7GBと書いてあるDVD-Rには、実際には4.3GB(GiB)しか記録できません。

USBメモリなどの半導体メモリの場合、
使われているメモリチップの種類によって畳み込まれる量が異なるため、さらに少なく見えることがあります。

以上が、1テラ搭載と書いてるのに1テラ無い理由でした。

以下、Wikipediaより

(本文登場順)