バイト (情報)
バイト (英: byte) は、「複数ビット」を意味する、データ量あるいは情報量の単位である。 1980年頃から1バイトは8ビット (bit) であることが一般的であり、 正式に定義されたのは2008年発行のIEC 80000-13である。8ビットは、256個の異なる値(たとえば整数であれば、符号無しで0から255、符号付きで−128から+127、など)を表すことができる。 概要本来バイトとは、8ビット固定ではなく、扱う文字種や、あるいはワードサイズをいくつかに分割することによって決められる、1文字を表現する単位で、古くは直接的に「字」とか「キャラクタ」とも呼ばれていた単位に由来するものである(→「キャラクタマシン」および「ワードマシン」を参照)。歴史的には5ビットから12ビットまで存在したと言われる。DEC PDP-10、NEC ACOS-6など、初期のコンピュータの多くでは6ビット、また7ビットや9ビットとして扱うコンピュータもあった。 しかし、System/360に始まり現在までその基本が引き継がれている、IBMのメインフレームのアーキテクチャが8ビットバイトであり、ミニコンピュータのベストセラーVAXや、8ビット時代以降のマイクロプロセッサの多くもそれに準じた設計であることもあり、一般にバイトは8ビットであることが多い。しかしそれでも、例えば通信分野などで、8ビットであることを明示するために、「オクテット」という語が使われることがある。 電子媒体の容量などは、ビット単位で表されることもあるが(チップの場合には構造上の理由もある[1])一般利用者の便宜上の観点からバイト単位で表されることが多い。メモリ空間のアドレッシングをバイト単位とするのは、前述のSystem/360で確立されたデファクトスタンダードである。バイトという語は情報量が1バイトの情報自体を指しても使われ、例えば「指定のバイトを読む」「バイトを処理する」などの言い回しに使用される。 単位としては、Bと略記され、同様にビットは小文字でbと略記されることがある。ただし、SI接頭語が付かない単なるバイトやビットは、意味が通じなかったり、誤解を招いたりする恐れがあるため、それぞれbyte (bytes)、bit (bits) と表記されることが望ましい。大きな情報量を表現する場合にはキロ、メガなどの2進接頭辞またはSI接頭語と共に使用される。1キロバイト (KB) は、場合によって1,000バイトとして扱われる場合と1,024 (210) バイトとして扱われる場合がある。2進接頭辞を使って1キビバイト (KiB) と表記した場合は必ず1,024バイトである。 国際単位系国際文書は、SI接頭語は厳格に10の整数乗を意味しているもので、2のべき乗を示すために用いてはならないと規定している[2]。したがって、1キロバイト (KB) を1,024 (210) バイトとして扱うことは禁じられている。 1970年代に8ビットのマイクロプロセッサが開発されたことで、このメモリサイズが普及した[3]。8086の直接の前身であるIntel 8080のようなマイクロプロセッサは、調整付き10進加算(DAA)命令のように、1バイト内の4ビットペアで少数の演算を実行することもできた。4ビットの値はしばしばニブル(ニブルバイト)と呼ばれ、16進数1桁で表現されます[4][5]。 符号位置Unicodeには全角幅での単位記号も収録されているが、これらはCJK互換用文字であり、既存の文字コードに対する後方互換性のために収録されているものであるので、使用は推奨されない[6][7]。一部、Unicodeに含まれずMacJapaneseに収録。
総利用率多くのプログラミング言語がバイトデータ型を定義している。 CおよびC++プログラミング言語では、バイトは「実行環境の基本文字セットの任意の要素を保持するのに十分な大きさの、アドレス指定可能なデータ記憶装置の単位」と定義されている[8][9][10] (6 スタンダードC)。C標準では、整数データ型unsigned charは少なくとも256の異なる値を格納でき、少なくとも8ビットで表現されることを要求している(第5節。2421)。異なるCおよびC++実装は、バイトストレージ用に8、9、16、32、または36ビットを確保する[11]。さらに、CとC++の標準では、2バイトの間に空白を入れないことが要求されている。つまり、メモリ上の各ビットはバイトの一部である。 C#のような.NETプログラミング言語では、byteは符号なし型、sbyteは符号付きデータ型として定義されており、それぞれ0から255、-128から127の値をとる。 Javaでは、プリミティブ・バイト・データ型は8ビット・データ型として定義されている[12]。これは符号付きデータ型で、-128から127までの値をとる。 データ伝送システムでは、バイトはシリアル・データ・ストリームの連続したビット列として使用され、データの最小の区別可能な単位を表す[13][14]。非同期通信の場合、完全な送信ユニットには通常、さらにスタートビット、1~2個のストップビット、場合によってはパリティビットが含まれるため、そのサイズは実際のデータ5~8ビットに対して7~12ビットとなる[15]。同期通信では、エラーチェックは通常、フレームの末尾のバイトを使用する。 脚注
関連項目
|