HDDやSSDの容量が表記より少ない理由 → 2進接頭辞とSI接頭辞が原因

原因

結論から言うと

  • HDDなどに表記されているのは・・・SI接頭辞
  • PC内で使われているのは・・・2進接頭辞

だからだった。

 

例えば、以下のようなHDDに記載されているT(テラ)は、SI接頭辞であるT(テラ)=1012

2TBの内蔵hdd
▲容量2TBのHDD。だけどWindowsに接続すると1.81TBと表示される。

 

逆に、パソコンの容量として表示されるT(テラ)は、2進接頭辞であるT(テラ)=240

▲2進数接頭辞での2TB
▲本来の容量としては2,000,396,742,656バイト。なのでHDDを販売しているメーカーは嘘を付いていない。

  • 2,000,396,742,656バイトを
    • 2進数接頭辞で表すと ≒ 1.81TB
    • SI接頭辞で表すと ≒ 2TB

つまり、

同じT(テラ)なのに意味がまったく違うのがそもそもの原因。

SI接頭辞 と 2進接頭辞の違い

表にすると以下のような感じ。

SI接頭辞 2進接頭辞
名前 記号 記号
キロ k 103 = 1 000 K 210 = 1024
メガ M 10= 1 000 000 M 220 = 1 048 576
ギガ G 109 = 1 000 000 000 G 230 = 1 073 741 824
テラ T 1012 = 1 000 000 000 000 T 240 = 1 099 511 627 776

▲キロ以外は記号が同じなので違いが判別できない。
(キロに限ってはSI接頭辞では小文字k、2進接頭辞では大文字K

 

つまりキロに関しては、以下のように表記の違いでどちらか判別できるけど

  • 1kB=1,000バイトのこと
  • 1KB=1,024バイトのこと

キロ以外は、以下のように表記だけではどちらか分からないのだ。

  • 1MB=1,000kBかもしれないし、1,000KBかもしれない
  • 1GB=1,024MBかもしれないし、1,000MBかもしれない
  • 1TB=1,024GBかもしれないし、1,000GBかもしれない

 

こんなもん、ITに詳しくない人なら「なんで表記されてる容量より少ないんだろう」と混乱するのは当たり前ですよね。

てかITに詳しい人でも知らない人多いでしょ多分。

2進接頭辞(旧)と 2進接頭辞(新)

よくよく考えると、PCパーツとして販売されている「メモリ」は、2進数接頭辞で容量が表記されています。

例えば、以下の商品は8GBなメモリですが、ここでいう「GB」は2進数接頭辞の「GB」なので、パソコン上で認識してもきちんと「8GB」と表記されます。

 

マジで謎😑

同じパソコンの商品なのに

  • メモリ:2進数接頭辞
  • HDDやSSD:SI接頭辞

って明らかにおかしいだろどうなってんだって感じだけど

これは以下のような理由かららしい。

今回の原因を作っているのはHDDベンダである。すべての記憶装置で1,000換算が採用されているのであれば、古くからの慣習に従おうという気持ちになれなくもないが、メインメモリが1,024換算で、HDDが1,000換算なのは明らかに不自然だ。

HDDが1,000換算を採用したのは、国際単位系で定められた本来の接頭語を尊重して、もっと具体的に言えばIECで定められた国際規格「IEC 60027-2」に従って接頭語を使用しているからということが分かった。“容量が大きく見える”というのは単なる副産物であって、故意ではなかったのだ。正確な情報をつかめたのでいまここで早急に訂正したい。

引用:伊勢雅英のIT見聞録

 

上の引用をまとめると「2進数接頭辞とSI接頭辞が同じ記号だからまぎらわしいんだろ?」というわけで

以下のように新しい2進接頭辞用の記号が定義されたらしい。

SI接頭辞 新しく制定されている2進接頭辞(※ただし、ほとんど使われていない)
名前 記号 名前 記号
キロ (kilo) k 103 = 1 000 キビ (kibi) Ki 210 =1 024
メガ (mega) M 106 = 1 000 000 メビ (mebi) Mi 220 =1 048 576
ギガ (giga) G 109 = 1 000 000 000 ギビ (gibi) Gi 230 =1 073 741 824
テラ (tera) T 1012 = 1 000 000 000 000 テビ (tebi) Ti 240 =1 099 511 627 776

 

ただ、2進接頭辞用(新)はほとんど使われていないのが現状らしい。

実際、この記事を読んでいる人も知らない人が99%だと思います。

 

そしてHDD/SSDメーカーは、マイナーな2進接頭辞(新)を使うとユーザーが混乱するだろうから、いまだに2進接頭辞(旧)を使い続けているのが現状。

まぁ正直、HDD/SSDメーカーとしても

  • 「今までSI接頭辞で記載してきたのに今さら2進接頭辞(新)に変えたところでユーザーが混乱するだろう」
  • 「というかWindowsやMacがSI接頭辞表記に変えるべきでは?もしくは新しい2進接頭辞で表記すべきでしょ!」

って感じだろうし

 

MicrosoftやAppleとしては

  • 「2進接頭辞(新)に変えるなんて発表してもユーザーが混乱するだけだろうし、2進接頭辞(旧)で不自由がなかったんだから別にそのままでいいじゃん!」
  • 「てかこの問題はHDDメーカーがそもそもの発端なんだからお前らが2進接頭辞(旧)で表示したら解決するじゃん!」

って感じだろうし、おそらく一生解決しない問題でしょうね・・・。

 

 

おわり

その他
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

タイトルとURLをコピーしました