1MB = 1000kB ? それとも 1024kB ?
どちらが正しいと思いますか。
こんにちは。T.W.です。
普段我々が使っているkB、MB などのデータ単位の記号は、
実際にいくつのバイト数を指しているかご存知ですか。
kBだけの単位を注目いただけると、k と B の2つのアルファベットで構成されています。
この場合ですと、それぞれ下記のような意味を持っています。
・前者:国際単位系(SI)におけるSI接頭辞
「1000」の代わりにアルファベット「k(1k)」で表現できる。
・後者は:固定サイズのデータ(バイト)の略
「1000バイト」の代わりに「1kB」で書かれている場合が多い。
▼▲▼▲ 小ネタ ▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲
国際単位系(SI)では、小文字の「k」が正式表記になります。大文字ではありません。
(知ってました?これだけでもびっくり!?するかもしれませんね)
▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲
主によく使われる十進法から見るとk、MなどのSI接頭辞を使うことで、
非常に大きな数字を扱いやすくできるメリットがある反面、
コンピュータの世界では二進法で計算を行いますので、
k、Mなど十進法の接頭辞を二進法の数字に使うと数の誤差が生じる場合があります。
例えば、1024バイト(2^10バイト)を1.024kBに書き変えると、さらに扱いにくくなるし、
1kBに書き変えると24バイト分が少なくなるケースがあります。
そこで、上記の問題を解決するために、電気工学、電子工学、および関連した技術を扱う
国際的な標準化団体である国際電気標準会議(IEC)が決めた「2進接頭辞」を推奨しています。
2進接頭辞って、設計書などのドキュメントで見たことありますでしょうか。
2進接頭辞の書き方・読み方(バイトの数を表現する場合)
書き方 | 読み方 | バイト数の表現 |
---|---|---|
1KiB | キビバイト | 1024バイト |
1MiB | メビバイト | 1024KiB |
1GiB | ギビバイト | 1024MiB |
1TiB | テビバイト | 1024GiB |
1PiB | ぺビバイト | 1024TiB |
1EiB | エクスビバイト | 1024PiB |
1ZiB | ゼビバイト | 1024EiB |
1YiB | ヨビバイト | 1024ZiB |
記述方法は、SI接頭辞の後に「i」を付けるだけですね。
なぜ2進接頭辞普及しないのかとその理由について
2進接頭辞普及しない理由はいくつか考えられますが、よく言われるのはわずかな誤差を無視する慣習があったからです。二進法ベースのシステムでは、大きな量を表す際、SI接頭辞キロ(k)が表す乗数1000に近い1024、SI接頭辞メガ(M)が表す乗数1000000に近い1048576、その誤差を無視する慣習がありました。一気にSI接頭辞ではなく、2進接頭辞を使うことがなかなか社会・業界への浸透ができないのが現状です。別の観点からみると、キロバイトは1000バイトか1024バイトか曖昧な部分もあり、事前に明白・説明する必要があります。
これから2進接頭辞を普及させるべき理由とは
その理由も誤差に密着な関係にあります。
今現在、使用するデータ容量が大きくなってきていますので、桁が大きくなればなるほどにこれから無視できない誤差が生じるからです。
上記の内容で、
1000(k)に近い1024をキロで表現すると、24(2.4%)の誤差が発生し、
1000000(M)に近い1048576をメガで表現すると、48576(4.8576%)の誤差が発生します。
以下の表ご覧ください。
SI接頭辞(バイト) | 2進接頭辞(バイト) | 誤差(%) |
---|---|---|
kB | KiB | 2% |
MB | MiB | 4% |
GB | GiB | 7% |
TB | TiB | 9% |
PB | PiB | 12% |
EB | EiB | 15% |
ZB | ZiB | 18% |
YB | YiB | 20% |
ご覧頂いた通り、単位が大きければ大きいほと、誤差が大きくなることがわかります。
2018年現在TB単位のポータブルストレージを簡単に入手することができます。更に数年後には、PB単位のストレージが量販店で流通する時代がくるでしょう。そのときにあなたは12%の誤差を許容できますか?
そういったことを踏まえて、今から2進接頭辞の記述や読み方を覚えておきましょう。
自分は、今回執筆にあたって改めて詳細を調べたりもしましたが、こういう機会がなくても最新動向や情報に敏感な人ってちょっとカッコイイですよね。
参考になれば幸いです。
以上