Carpe Diem

備忘録。https://github.com/jun06t

KBとKiBとハードディスクの容量

よく「2TのHDD買ったけどパソコンでは1.86Tって表示される。どうしてだっけ?」と悩むのでメモ。 KB(キロバイト)はしばしば以下の2通りに解釈されます ・1,024バイト(2^10。慣用的。区別のためケーバイトとも読む。あと大文字小文字云々) ・1,000バイト(SI単位系 私たちがパソコン内で使用しているのは上です。けどHDD販売とかで使用されるのは下。 ただパソコン内でもエクスプローラではhuman-readableを使っているのがポイント。 右クリック→プロパティとかすると、大抵左に実際のバイト(2^10)、右にhuman-readableのバイトが書いてある。 164,496,923バイト 157MB って感じに。これは無修飾→Kに直すとき、K→Mに直すときに1,024で割るからそうなる。単純な計算ですね。 UbuntuUnix環境では「-h」オプションをつけるとhuman-readableになります。 ここまではいいんだけど、問題はHDDが販売の時に慣用的なバイトに対して10進数のSI単位を使うこと。 つまり上の例で言うとHDDでは「164MB」とか表記するわけ。 だからHDDでいう「2T」と言うのは、 2TB(SI)=2,000,000,000,000バイト(2^10)=1.86TB(human-readable。1,024で4回割る) となるわけ。私たちがデータで扱うのは基本human-readableの方だから、正直HDDの表記は詐欺っぽいです。アメリカでは訴訟が起きるくらい。 なので区別するために「KiB(キビバイト)」みたいな表記が出てきてたりします。この表記であれば 2TB=1.86TiB と同じ単位にならずに済みます。 けれどパソコンのエクスプローラはもう完全にTB表記(human-readable)になってしまっているので、この「KiB」や「TiB」が普及するのは正直なさそうです。 ソース: キビバイト ハードディスク計算