「2進接頭辞」の版間の差分

削除された内容 追加された内容
ページの置換: '>tfw no qt jap wikipedo bf'
タグ: サイズの大幅な増減
1行目:
>tfw no qt jap wikipedo bf
{{バイトの単位表}}
'''2進接頭辞'''(にしんせっとうじ)は、[[単位]]に2の[[冪乗]]を[[乗法|乗]]じたものを表す単位(その単位の二進の倍量単位)を作成するために、単位に付す[[接頭辞]]である。
 
== 経緯 ==
[[情報工学]]において、[[コンピュータ|デジタルコンピュータ]]が扱う[[データ]]の大きさを表す単位([[ビット]]、[[バイト (情報)|バイト]]や[[8ビット|オクテット]])に付す接頭辞として使われる。2進接頭辞の名称に[[SI接頭辞]]に由来するキロ、メガ、ギガ等を流用する[[習慣|慣習]]があるが、[[国際度量衡総会]] (CGPM) で決定されたSI接頭辞は10の整数乗を表しSI接頭辞が2の冪乗を表すことはない。また、2進接頭辞が表す乗数とSI接頭辞が表す乗数は異なる。
 
情報工学の分野では頻繁に[[二進記数法|二進法]]を使うため、2の冪乗([[2の冪]])が良く使用される。そこで大きな量を表す際、SI接頭辞キロが表す乗数1000に近い1024 (= 2{{sup|10}}) やSI接頭辞メガが表す乗数1 000 000に近い1 048 576 (= 2{{sup|20}}) について、キロやメガを接頭辞として主にバイトやビットといったデータの大きさの単位と組み合わせて使用されるようになった。例えば1キロバイトや1メガバイトは、記号を使用して1KB、1MBと書き、また、会話において当事者同士で単位について暗黙または明示的な合意があると認識している場合、単位を省略して1キロ、1メガといった言い方を慣用的に使ってきた。その後、データ規模の拡大に伴い、より大きな乗数を表すギガ、テラ、ペタなども同様に使われる様になった。
 
ところが、[[情報工学]]分野、特に記憶装置関連おいては2進接頭辞に限られることはなく、底が2なのか10なのか不明確なままになる場合がある。さらには乗数が増えるほど流用元のSI接頭辞が表す乗数との誤差が大きくなるため、ギガ、テラ等の利用が進むにつれ不都合が増えてきた。(下表の通り、キロでは誤差2.4%と[[有効数字]]2桁の範囲で不都合は生じないが、テラでは誤差が約10%となり有効数字2桁の範囲でも無視できなくなる)
 
これに対して、IEC([[国際電気標準会議]])は 1998年にSI接頭辞と区別できる新たな 2進接頭辞を承認した。2{{sup|10}}、2{{sup|20}}、2{{sup|30}}などの乗数を表す接頭辞は[[IEC 60027|IEC 60027-2]]ではそれぞれキビ、メビ、ギビなどとなり、1024バイトは1キビバイト、1 048 576バイトは1メビバイトとなる。同様の規格が[[IEEE]]でも[[IEEE 1541-2002]]として成立している。IEC 60027の2進接頭辞の規定は[[IEC 80000-13|IEC 80000-13:2008]]に取り込まれた。
 
しかしながら、情報技術系企業においてさえ利用度は高くなく<ref>ibm.comにおけるGoogle検索において "TB バイト" で約1490件、"TiB バイト" で7件。</ref>、普及は進んでおらず、混乱の解消には至っていない。
 
== 従来の用法 ==
{| class="wikitable"
|+ '''従来の2進数の接頭辞'''
|-
!名前!!記号!!乗数!!SI接頭辞の乗数
|-
|キロ (kilo)||k||2{{sup|10}} = 1&nbsp;024||10{{sup|3}} = 1&nbsp;000
|-
|メガ (mega)||M||2{{sup|20}} = 1&nbsp;048&nbsp;576||10{{sup|6}} = 1&nbsp;000&nbsp;000
|-
|ギガ (giga)||G||2{{sup|30}} = 1&nbsp;073&nbsp;741&nbsp;824||10{{sup|9}} = 1&nbsp;000&nbsp;000&nbsp;000
|-
|テラ (tera)||T||2{{sup|40}} = 1&nbsp;099&nbsp;511&nbsp;627&nbsp;776||10{{sup|12}} = 1&nbsp;000&nbsp;000&nbsp;000&nbsp;000
|-
|ペタ (peta)||P||2{{sup|50}} = 1&nbsp;125&nbsp;899&nbsp;906&nbsp;842&nbsp;624||10{{sup|15}} = 1&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000
|-
|エクサ (exa)||E||2{{sup|60}} = 1&nbsp;152&nbsp;921&nbsp;504&nbsp;606&nbsp;846&nbsp;976||10{{sup|18}} = 1&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000
|-
|ゼタ (zetta)||Z||2{{sup|70}} = 1&nbsp;180&nbsp;591&nbsp;620&nbsp;717&nbsp;411&nbsp;303&nbsp;424||10{{sup|21}} = 1&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000
|-
|ヨタ (yotta)||Y||2{{sup|80}} = 1&nbsp;208&nbsp;925&nbsp;819&nbsp;614&nbsp;629&nbsp;174&nbsp;706&nbsp;176||10{{sup|24}} = 1&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000&nbsp;000
|}
 
キロの記号は SI 接頭辞の k と区別して K が使用される。それ以外の記号は SI 接頭辞と同じで区別できない。
 
== IEC 規格の接頭辞 ==
 
{| class="wikitable"
|+ '''新しいIEC規格の接頭辞'''
|-
!名前!!記号!!乗数
|-
|キビ (kibi)||Ki||2{{sup|10}} = 1&nbsp;024
|-
|メビ (mebi)||Mi||2{{sup|20}} = 1&nbsp;048&nbsp;576
|-
|ギビ (gibi)||Gi||2{{sup|30}} = 1&nbsp;073&nbsp;741&nbsp;824
|-
|テビ (tebi)||Ti||2{{sup|40}} = 1&nbsp;099&nbsp;511&nbsp;627&nbsp;776
|-
|ペビ (pebi)||Pi||2{{sup|50}} = 1&nbsp;125&nbsp;899&nbsp;906&nbsp;842&nbsp;624
|-
|エクスビ (exbi)||Ei||2{{sup|60}} = 1&nbsp;152&nbsp;921&nbsp;504&nbsp;606&nbsp;846&nbsp;976
|-
|ゼビ (zebi)||Zi||2{{sup|70}} = 1&nbsp;180&nbsp;591&nbsp;620&nbsp;717&nbsp;411&nbsp;303&nbsp;424
|-
|ヨビ (yobi)||Yi||2{{sup|80}} = 1&nbsp;208&nbsp;925&nbsp;819&nbsp;614&nbsp;629&nbsp;174&nbsp;706&nbsp;176
|}
 
語源は近い値の SI 接頭辞の先頭部分に 2 進を表す bi を付けたもので、記号では SI 接頭辞の記号に i が付く。ただしキビについては k が大文字になって Ki となる。
 
2007年時点ではこの表現方法はまだ広く使われていない。2005年までは、SI接頭辞のエクサに対応するエクスビまでしか定められておらず、ゼタ (10{{sup|21}})、ヨタ (10{{sup|24}}) に対応する2進接頭辞はなかった。2005年8月、IECは、エクスビ以上の接頭辞としてゼビ (zebi)、ヨビ (yobi) を正式に導入した。
 
== 2進接頭辞とSI接頭辞 ==
 
一般的に[[半導体メモリ]]の構造に起因するデータの大きさの単位では2進接頭辞が、それ以外でSI接頭辞が使用される。しかしメモリ関連であっても場面によっては[[十進記数法|十進法]]に基づくSI接頭辞の方が量の比較や計算が行いやすい利便性があるため、両者の使い分けが考えられる。そのため2進接頭辞はIEC規格での明確な表示が必要となる。
 
IEC規格でない旧来の2進接頭辞とSI接頭辞の使い分けは分野や場合によっては曖昧で混乱しており、キロがSI接頭辞の1000であるか2進接頭辞の1024であるかはそれだけではわからない事もある。キロでは双方の差は約2%だが、メガで約5%、ギガで約7%、テラで約10%と乗数が大きくなるにつれその差も大きくなる。俗に、1024にはkではなくKを用い、「ケー」と称するという流儀もある。
 
IEC 60027-2:2005によりSI接頭辞とは異なる名称と記号を持つ2進接頭辞が導入されたことを受け、国際単位系 (SI) 国際文書第8版(2006年)では、SI接頭辞は10の整数乗を表すことを改めて強調した上で、SI接頭辞を決して2の冪乗を表すために用いてはならないとしている。ただし、IEC 60027-2:2005の2進接頭辞はSIには属さない。
 
一般に[[Random Access Memory|RAM]]や[[Read Only Memory|ROM]]など[[半導体メモリ]]の容量は2進接頭辞を使う。1キロバイト=1024バイト、1メガバイト=1024キロバイトである。
 
[[CPU]]等の[[クロック周波数]]や[[サンプリング周波数]]など[[周波数]]にはSI接頭辞が使用される。2.4ギガヘルツは2 400 000 000ヘルツである。周波数の単位は[[物理単位|計量単位]]なので各国の計量法規の規制を受ける。日本では[[計量法]]等により国際単位系を用いるので周波数の単位で2進接頭辞は利用できない。
 
[[通信]]速度、また音声や映像の[[データ圧縮|圧縮]]や[[ストリーミング]]での[[ビットレート]]ではSI接頭辞が使用される。1メガビット/秒は1 000 000ビット/秒である。<!--しかし、日本においては2進数で計算されることが多く、1メガビット/秒を1 048 576ビット/秒と計算されることが一般的である。{{要出典}}-->
 
[[フロッピーディスク]]の容量では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 × 10{{sup|9}}バイト)の容量を持っている。しかしOS等の表示は2進接頭辞を使用している場合が多く、100ギガバイトのハードディスクがOS上で93ギガバイト前後と表示されるなど、ハードディスクドライブの容量表示とOSでの容量表示は食い違う場合が多い。その為SI接頭辞で表した製品の箱(ケース)や説明書などに小さく「OSの表示により、容量が小さく表示されることがあります。」等と表記されていることが多い。
 
[[ファイル (コンピュータ)|ファイル]]や電子[[ドキュメント]]の大きさは伝統的に2進接頭辞が使われる場合が多い。これはWindowsのデフォルトがそうなっているためと思われる。
 
== 外部リンク ==
* [http://www.iec.ch/cgi-bin/procgi.pl/www/iecwww.p?wwwlang=E&amp;wwwprog=sea22.p&amp;search=iecnumber&amp;header=IEC&amp;pubno=60027&amp;part=&amp;se=&amp;number=&amp;searchfor=&amp;ics= Reference IEC 60027] - [[国際電気標準会議]]のサイト内{{en icon}}
* {{EoE|Binary_prefix|Binary prefix}}
* [http://www.iec.ch/zone/si/si_bytes.htm IEC - IEC in action | SI zone &gt; Prefixes for binary multiples] - 国際電気標準会議{{en icon}}
* [http://standards.ieee.org/board/rev/305recomm.html Recommendation to elevate IEEE 1541-2002 to full-use standard] - IEEE{{en icon}}
 
==注釈==
<references/>
 
{{DEFAULTSORT:にしんせつとうし}}
 
[[Category:情報の単位]]
[[Category:単位接頭辞]]
[[Category:IEC標準|80000-13]]
[[Category:IEEE標準|01541]]