2進接頭辞

2の10乗、20乗...を表す接頭辞

2進接頭辞(にしんせっとうじ)は、単位に2のべき乗じたものを表す単位(その単位の二進の倍量単位)を示す接頭辞である。

バイトの単位一覧
SI接頭語 2進接頭辞
単位(記号) SI基準 慣用値 単位(記号) SIとの(概数)
キロバイト (kB) 103 210 キビバイト (KiB) 210 2.400000%
メガバイト (MB) 106 220 メビバイト (MiB) 220 4.857600%
ギガバイト (GB) 109 230 ギビバイト (GiB) 230 7.374182%
テラバイト (TB) 1012 240 テビバイト (TiB) 240 9.951163%
ペタバイト (PB) 1015 250 ペビバイト (PiB) 250 12.589991%
エクサバイト (EB) 1018 260 エクスビバイト (EiB) 260 15.292150%
ゼタバイト (ZB) 1021 270 ゼビバイト (ZiB) 270 18.059162%
ヨタバイト (YB) 1024 280 ヨビバイト (YiB) 280 20.892582%
ロナバイト (RB) 1027 290 ロビバイト (RiB) 290 23.794004%
クエタバイト (QB) 1030 2100 クエビバイト (QiB) 2100 26.765060%
この表の上付き文字は環境により適切に表示されていない場合があります。

経緯 編集

デジタルコンピュータが扱うデータの大きさを表す単位(ビットバイトオクテット)に付す接頭辞などとして使われる。

2進接頭辞の名称に、SI接頭語に由来するキロ、メガ、ギガ等を誤差を無視して流用する慣習があるが、これは俗習である。国際度量衡総会 (CGPM) で決定されたSI接頭語は厳密に10の整数乗を表しているのであってSI接頭語が2のべき乗を表すことは決してない。

二進法ベースのシステムでは、その数量について2のべき乗(2のべき)がよく現れる。そこで大きな量を表す際、SI接頭語のキロが表す乗数1000に近い1024 (= 2の10(210)) やSI接頭語のメガが表す乗数1 000 000に近い1 048 576 (= 220) について、キロやメガを接頭語として主にバイトやビットといったデータの大きさの単位と組み合わせて使用されるようになった。例えば1キロバイトや1メガバイトは、記号を使用して1KB、1MBと書き、また、会話において当事者同士で単位について暗黙または明示的な合意があると認識している場合、単位を省略して1キロ、1メガといった言い方を慣用的に使ってきた。その後、データ規模の拡大に伴い、より大きな乗数を表すギガ、テラ、ペタなども同様に使われる様になった。

なお、特に記憶装置の関連などにおいて、底が2なのか10なのか不明確に扱われる場合がある。特に、メーカーがハードディスクの容量を示す際などに顕著である。さらには乗数が増えるほど流用元のSI接頭語が表す乗数との誤差が大きくなるため、ギガ、テラ等の利用が進むにつれ不都合が増えてきた。下表の通り、キロでは誤差2.4%と有効数字2桁の範囲で不都合は生じないが、テラでは誤差が約10%となり有効数字2桁の範囲でも無視できなくなる。

1998年、IEC(国際電気標準会議)はSI接頭語と区別できる新たな2進接頭辞を承認した。210、220、230などの乗数を表す接頭辞はIEC 60027-2ではそれぞれキビ、メビ、ギビなどとなり、1024バイトは1キビバイト、1 048 576バイトは1メビバイトとなる。同様の規格がIEEEでもIEEE 1541-2002として成立している。IEC 60027の2進接頭辞の規定はIEC 80000-13:2008に取り込まれた。しかし、普及は進んでおらず、混乱の解消には至っていない。情報技術系企業でさえ、利用度は高くはない。[独自研究?]

これに対して1999年、JEDECはJESD100-Bを定め、記憶装置の容量を表す場合に限りSI接頭語と同様の名称を2のべき数に用いるものと定義した[1]。すなわち、この規格において1024バイトを1キロバイト、1 048 576バイトを1メガバイトなどと呼ぶことは適正とされる。

従来の用法 編集

従来の2進数の接頭辞
名前 記号 乗数 SI接頭語の乗数
キロ (kilo) k 210 = 1 024 103 = 1 000
メガ (mega) M 220 = 1 048 576 106 = 1 000 000
ギガ (giga) G 230 = 1 073 741 824 109 = 1 000 000 000
テラ (tera) T 240 = 1 099 511 627 776 1012 = 1 000 000 000 000
ペタ (peta) P 250 = 1 125 899 906 842 624 1015 = 1 000 000 000 000 000
エクサ (exa) E 260 = 1 152 921 504 606 846 976 1018 = 1 000 000 000 000 000 000
ゼタ (zetta) Z 270 = 1 180 591 620 717 411 303 424 1021 = 1 000 000 000 000 000 000 000
ヨタ (yotta) Y 280 = 1 208 925 819 614 629 174 706 176 1024 = 1 000 000 000 000 000 000 000 000

キロの記号は SI接頭語の k と区別して K が使用される。それ以外の記号はSI接頭語と同じで区別できない。

IEC 規格の接頭辞 編集

新しいIEC規格の接頭辞
名前 記号 乗数
キビ (kibi) Ki 210 = 1 024
メビ (mebi) Mi 220 = 1 048 576
ギビ (gibi) Gi 230 = 1 073 741 824
テビ (tebi) Ti 240 = 1 099 511 627 776
ペビ (pebi) Pi 250 = 1 125 899 906 842 624
エクスビ (exbi) Ei 260 = 1 152 921 504 606 846 976
ゼビ (zebi) Zi 270 = 1 180 591 620 717 411 303 424
ヨビ (yobi) Yi 280 = 1 208 925 819 614 629 174 706 176

語源は近い値のSI接頭語の先頭部分に2進を表す bi を付けたもので、記号ではSI接頭語の記号に i が付く。ただしキビについては k が大文字になって Ki となる。

2007年時点ではこの表現方法はまだ広く使われていない。2005年までは、SI接頭語のエクサに対応するエクスビまでしか定められておらず、ゼタ (1021) 、ヨタ (1024) に対応する2進接頭辞はなかった。2005年8月、IECは、エクスビ以上の接頭辞としてゼビ (zebi) 、ヨビ (yobi) を正式に導入した。

2進接頭辞とSI接頭語 編集

IEC規格でない旧来の2進接頭辞とSI接頭語の使い分けは分野や場合によっては曖昧で混乱しており[2]、キロがSI接頭語の1000であるか2進接頭辞の1024であるかはそれだけではわからない事もある。キロでは双方の差は約2%だが、メガで約5%、ギガで約7%、テラで約10%と乗数が大きくなるにつれその差も大きくなる。俗に、1024にはkではなくKを用い、「ケー」と称するという流儀もある[3]

IEC 60027-2:2005によりSI接頭語とは異なる名称と記号を持つ2進接頭辞が導入されたことを受け、2006年に発行された国際単位系国際文書第8版では、SI接頭語は10の整数乗を表すことを改めて強調した上で、SI接頭語を2のべき乗を表すために用いてはならないとしている。IEC 60027-2:2005の2進接頭辞はSIには属さない。

一般的に半導体メモリの構造に起因するデータの大きさの単位では2進接頭辞が、それ以外でSI接頭語が使用される。しかしメモリ関連であっても場面によっては十進法に基づくSI接頭語の方が量の比較や計算が行いやすい利便性があるため、両者の使い分けが考えられる。そのため2進接頭辞はIEC規格での明確な表示が必要となる。

RAMROMSSDUSBメモリなど半導体メモリの容量は2進接頭辞が使用される。1キロバイト=1024バイト、1メガバイト=1024キロバイトである。

CPU等のクロック周波数サンプリング周波数など周波数にはSI接頭語が使用される。2.4ギガヘルツは2 400 000 000ヘルツである。周波数の単位は計量単位なので各国の計量法規の規制を受ける。日本では計量法等により国際単位系を用いるので周波数の単位で2進接頭辞は利用できない。

通信速度、また音声や映像の圧縮ストリーミングでのビットレートではSI接頭語が使用される。1メガビット/秒は1 000 000ビット/秒である。

フロッピーディスクの容量では2進接頭辞とSI接頭語の混合した単位が使用される場合がある。2HDフロッピーディスクの、(512バイト/セクタ) × (18セクタ/トラック) × (80トラック/面) × (2面) フォーマットの容量はしばしば「1.44メガバイト」とされるが、正確には1.44 × 1000 × 1024バイト(1440キビバイト)の容量を持っている。この場合の "メガ" は1000 × 1024であり、SI接頭語でも2進接頭辞でもない。いずれかを使用するなら1.47メガバイトまたは1.41メビバイトとなる。

ハードディスクドライブの容量ではSI接頭語が使用される。これは同じハードディスクでもSI接頭語で表示したほうが見かけの数字がより大きくなるというマーケティング上の理由からであると考えられている。[誰によって?]例えば100ギガバイトのハードディスクドライブはおよそ100 × 1000 × 1000 × 1000バイト(100 × 109バイト)の容量を持っている。しかしOS等の表示は2進接頭辞を使用している場合が多く、100ギガバイトのハードディスクがOS上で93ギガバイト前後と表示されるなど、ハードディスクドライブの容量表示とOSでの容量表示は食い違う場合が多い。そのためSI接頭語で表した製品の箱(ケース)や説明書などに小さく「OSの表示により、容量が小さく表示されることがあります。」等と表記されていることが多い。

ファイルや電子ドキュメントの大きさは伝統的に2進接頭辞が使われる場合が多い。これはWindowsのデフォルトがそうなっているためと思われる。

注釈 編集

  1. ^ (英語) (PDF) Terms, Definitions, and Letter Symbols for Microcomputers, Microprocessors, and Memory Integrated Circuits. JEDEC Solid State Technology Association. (2002-12). pp. 7. JESD100B.01. https://www.jedec.org/system/files/docs/JESD100B01.pdf 2021年6月9日閲覧。 
  2. ^ 【気になるトレンド用語】今更聞けない!ハードディスクの単位”. ライブドアニュース. 2022年6月27日閲覧。
  3. ^ キロバイトとは (kilobyte, KB): - IT用語辞典バイナリ”. www.sophia-it.com. 2022年6月27日閲覧。

外部リンク 編集