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

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

経緯

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

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

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

初期の2進接頭辞の提案

後述のIEC規格が制定される以前にも、1960年代後半から独自の2進接頭辞に関するいくつかの提案が存在していた。

1968年、ドナルド・モリソンは1024を表すのにギリシャ文字のκ(カッパ)、10242を表すのにκ2、といったように、ギリシャ文字のκを用いることを提案した(当時、メモリ容量は小さく、広く使われていたのはKのみであった)。 同年、ウォレス・ギヴンスは、1024の略記としてbK、10242の略記としてbK2またはbK2を用いることを提案したが、当時のコンピュータプリンタではギリシャ文字も小文字のbも再現しにくいと指摘した。 ブルックヘブン国立研究所のブルース・アラン・マーティンは接頭辞の代わりに、2のべき乗を10進数の指数表記におけるE表記と同様に、文字 B の後に指数を付ける方法で表すことを提案した。たとえば、3×220 は 3B20 と表記できる。

1969年、ドナルド・クヌースは 1MB = 1000kB のように10進表記を使用しており pp.24 and 94 ※ps.gz形式、1024のべき乗を「ラージ・キロバイト」と「ラージ・メガバイト」と呼び、それぞれ KKB と MMB と略記することを提案した。

1996年、ドイツの計算機学者マルクス・クーンは「バイナリ」を表すために、接頭辞「di」と記号の接尾辞または添え字「2」を追加することを提案した。例えば、「1 dikilobyte」は「1024 バイト」を意味し、「K2B」または「K2B」と表記する。

規格化 1995年、国際純正・応用化学連合 (IUPAC) の命名法・記号のための部会間委員会(IDCNS、)の年次総会で、2進接頭辞として 2 を kilobinary の略としてキビ(kibi、記号: kb)、同様に 2 をメビ(mebi、記号: Mb)、2 をギビ(gibi、記号: Gb)、2 をテビ(tebi、記号: Tb)とする提案があった。さらに翌1996年の年次総会では、IEEE が読みはそのままにこれらの記号を Ki, Mi, Gi, Ti と変更することを提案した。

1998年、国際電気標準会議 (IEC) はこれを承認し、さらに 2 を表すペビ(pebi、記号: Pi)、2 を表すエクスビ(exbi、記号: Ei)を追加し、1999年、IEC 60027-2の第2改訂版に取り込まれた。

2003年2月に同様の規格がIEEEでもIEEE 1541-2002として成立している。当初は試用規格であったが、2年間の試用期間を経て2005年3月に完全使用規格に昇格された。

2005年8月、IEC 60027-2:2005でさらに 2 を表すゼビ(zebi、記号: Zi)、2 を表すヨビ(yobi、記号: Yi)が追加された。

2006年に発行された国際単位系国際文書第8版では、「SI接頭語は10の整数乗を表す。決して2のべき乗を表すために用いてはならない」と改めて強調したうえで、IEC 60027-2:2005の2進接頭辞について国際単位系には属さないもののSI接頭語の誤用を避けるための参考情報として記載された 33頁。

2008年、IEC 60027の2進接頭辞の規定を含む3.8節・3.9節は、IEC 80000-13:2008に継承された。

2022年に国際度量衡局が 10 を ロナ、10 を クエタ としたことで、2025年には IEC 80000-13:2025 に 2 を表すロビ(robi、記号: Ri)、2 を表すクエビ(quebi、記号: Qi)が追加された。

しかし2007年時点では、この表現方法の普及は進んでおらず混乱の解消には至っていないとする意見もある。情報技術系企業でさえ、利用度は高くはない。一方でそれまでSI接頭語を使用していたものを2進接頭辞に切り替える動きもある。

従来の用法 + 従来の2進数の接頭辞名前記号乗数SI接頭語の乗数キロ (kilo)k2 = 1024 = 1 02410 = 1000 = 1 000メガ (mega)M2 = 1024 = 1 048 57610 = 1000 = 1 000 000ギガ (giga)G2 = 1024 = 1 073 741 82410 = 1000 = 1 000 000 000テラ (tera)T2 = 1024 = 1 099 511 627 77610 = 1000 = 1 000 000 000 000ペタ (peta)P2 = 1024 = 1 125 899 906 842 62410 = 1000 = 1 000 000 000 000 000エクサ (exa)E2 = 1024 = 1 152 921 504 606 846 97610 = 1000 = 1 000 000 000 000 000 000ゼタ (zetta)Z2 = 1024 = 1 180 591 620 717 411 303 42410 = 1000 = 1 000 000 000 000 000 000 000ヨタ (yotta)Y2 = 1024 = 1 208 925 819 614 629 174 706 17610 = 1000 = 1 000 000 000 000 000 000 000 000

1024 を表す記号は SI接頭語の小文字の k を流用してキロと読む場合と、区別のため大文字の K を用いてキロと読む場合、大文字の K を用いてケーと読む場合などがあった。それ以外の記号はSI接頭語と同じ表記・読みで区別できない。

IEC 規格の接頭辞

+ 新しいIEC規格の接頭辞名前記号乗数キビ (kibi)Ki2 = 1 024メビ (mebi)Mi2 = 1 048 576ギビ (gibi)Gi2 = 1 073 741 824テビ (tebi)Ti2 = 1 099 511 627 776ペビ (pebi)Pi2 = 1 125 899 906 842 624エクスビ (exbi)Ei2 = 1 152 921 504 606 846 976ゼビ (zebi)Zi2 = 1 180 591 620 717 411 303 424ヨビ (yobi)Yi2 = 1 208 925 819 614 629 174 706 176ロビ (robi)Ri2 = 1 237 940 039 285 380 274 899 124 224クエビ (quebi)Qi2 = 1 267 650 600 228 229 401 496 703 205 376

語源は、近い値のSI接頭語の先頭部分の後ろに、2進を表す bi を付け "bee" のように発音するとしており、記号ではSI接頭語の記号に i が付く。ただしキビについてはSI接頭語の小文字の k を大文字に変えて Ki となる。

2進接頭辞とSI接頭語

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

半導体メモリ

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

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

1999年、半導体技術協会 (JEDEC) はJESD100Bを定め、記憶装置の容量を表す場合に限りSI接頭語と同様の名称のキロ、メガ、ギガについて2進接頭辞として定義しているが、それらの注意書きにはとの記載がある。この時点では半導体業界でのSI接頭語の誤用が一般的であることを認めており、IEC の定めた2進接頭辞への移行を勧めている。

周波数

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

通信速度

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

フロッピーディスク

thumb|200px|right|2HDフロッピーディスクのパッケージ

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

ハードディスク

ハードディスクドライブの容量ではSI接頭語が使用される。 例えば100ギガバイトのハードディスクドライブはおよそ100 × 1000 × 1000 × 1000バイト(100 × 10バイト)の容量を持っている 。しかしOS等の表示は2進接頭辞を使用している場合が多く、100ギガバイトのハードディスクがOS上で93ギガバイト前後と表示されるなど、ハードディスクドライブの容量表示とOSでの容量表示は食い違う場合が多い。そのためSI接頭語で表した製品の箱(ケース)や説明書などに「OSの表示により、容量が小さく表示されることがあります。」等と表記されていることが多い。

ファイルサイズ

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

脚注

注釈

出典