バイト | Programming Place Plus 用語集

トップページ用語集

名称

解説

情報量の単位です。

情報量の最小単位はビットですが、これを8個並べた単位がバイトです。

バイトの本来的な意味は、ある文字集合の中の1文字を表現するために必要な情報量です。

コンピュータの種類によって文字の扱いが異なるため、かつては1バイトのビット数の定義がばらばらでしたが、現在では、1バイトが8ビットであることを定めた国際規格があります(2008年の IEC 80000-13 にて定義)。現在では、特に断りがなければ、1バイト=8ビットであるとみなして問題ありません。

そのような混乱がみられた時代、確実に8ビットを意味していなければならない文脈では、バイトに代わって、オクテットという用語が使われることもありました。

1ビットで表現できるデータのパターンは「0」と「1」の2通りです。2ビットあれば「00」「01」「10」「11」の4通り、3ビットあれば「000」「001」「010」「011」「100」「101」「110」「111」の8通りです。つまり、nビットあれば 2n の情報のパターンが表現できます。したがって、1バイトは 28 パターン(=256パターン)の表現力があります。

表記する際には、そのまま「バイト」と書くほか、「B」のように省略して書くこともあります。小文字の「b」はビットを表すため、使い分けに注意が必要です。「100b」は 100ビット、「100B」は 100バイトのことです。

また、大抵のデータはそれなりに大きいので、キロ(k)やメガ(M)、ギガ(G)、テラ(T)といった(国際単位系における)接頭辞を付加して表現することが多いです(これらの中で、キロだけは小文字で表現されることに注意)。それぞれ、10001、10002、10003、10004 のことを表しており、たとえば 1ギガバイト(1GB)は、1000^^3バイト(10億バイト)のことです。

C言語の場合

C言語の標準規格でも、バイトという単位は登場しますが、それが何ビットであるのかは処理系定義とされています。

ただし、標準ライブラリには、CHAR_BIT(C言語編 標準ライブラリのリファレンス)というマクロが定義されており、1バイトのビット数に置換されます。この置換結果は 8以上であるとされているので、1バイトが8ビット以上であることには保証があります。

C言語のバイトは、基本文字集合(C言語編第8章)に含まれる1文字を表現できる大きさです。それはつまり、char型の大きさであるともいえます。char型の大きさが1バイトであり、そのほかの型の大きさは、この整数倍となるように定められています。

また、sizeof演算子(C言語編第18章)によって得られるもバイト単位です。したがって、CHAR_BIT が 9 になる処理系で、sizeof演算子が 4 となる型の大きさは4バイトであり、それは36ビットのことです。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る