情報量の単位です。
情報量の最小単位はビットですが、これを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言語の標準規格でも、バイトという単位は登場しますが、それが何ビットであるのかは処理系定義とされています。
ただし、標準ライブラリには、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で書く |
RSS | 管理者情報 | プライバシーポリシー |