バイト
バイトとは、コンピュータで使われる最も基本的な情報単位のひとつで、ビットと呼ばれる情報単位を8つあわせて表現する単位のことである。
コンピュータが解釈する情報は「0」と「1」の2進法の数で構成される。0あるいは1の情報単位はビットと呼ばれる。1ビットが8つ並んで8ビットを形成すると、256種類のアルファベット、数字、カナなどの文字に対応させることができる。日本語の漢字を表現するには2バイトが必要である。2バイトあると4096文字までに対応させることができる。なお、通信の分野では8ビットを1オクテット(octet)と区別して読んでいる。そして必ずしも8ビットではなくバイトの単位が用いられる場合もある。
Byte フィールド
Byte メソッド

名前 | 説明 | |
---|---|---|
![]() | CompareTo | オーバーロードされます。 指定したオブジェクトまたは Byte とこのインスタンスを比較し、これらの相対値を示す値を返します。 |
![]() | Equals | オーバーロードされます。 Byte の 2 つのインスタンスが同じ値を表しているかどうかを示す値を返します。 |
![]() | GetHashCode | オーバーライドされます。 このインスタンスのハッシュ コードを返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | GetTypeCode | Byte 値型の TypeCode を返します。 |
![]() | Parse | オーバーロードされます。 数値の文字列形式を、それと等価の Byte に変換します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | オーバーロードされます。 オーバーライドされます。 このインスタンスの数値を、それと等価の文字列に変換します。 |
![]() | TryParse | オーバーロードされます。 数値の文字列形式を、それと等価の Byte に変換します。戻り値は、変換が成功したか失敗したかを示します。 |

名前 | 説明 | |
---|---|---|
![]() | System.IConvertible.ToBoolean | Byte のこのインスタンスをブール値に変換します。 |
![]() | System.IConvertible.ToByte | Byte のこのインスタンスの値を返します。 |
![]() | System.IConvertible.ToChar | Byte のこのインスタンスを Unicode 文字に変換します。 |
![]() | System.IConvertible.ToDateTime | この変換はサポートされていません。変換を試みると、InvalidCastException がスローされます。 |
![]() | System.IConvertible.ToDecimal | Byte のこのインスタンスを Decimal 形式に変換します。 |
![]() | System.IConvertible.ToDouble | Byte のこのインスタンスを Double として変換します。 |
![]() | System.IConvertible.ToInt16 | Byte のこのインスタンスを Int16 に変換します。 |
![]() | System.IConvertible.ToInt32 | Byte 値のこのインスタンスを Int32 に変換します。 |
![]() | System.IConvertible.ToInt64 | Byte のこのインスタンスを Int64 に変換します。 |
![]() | System.IConvertible.ToSByte | Byte のこのインスタンスを SByte に変換します。 |
![]() | System.IConvertible.ToSingle | Byte を Single に変換します。 |
![]() | System.IConvertible.ToType | Byte のこのインスタンスを、指定した Type のオブジェクトに変換します。 |
![]() | System.IConvertible.ToUInt16 | Byte のこのインスタンスを UInt16 に変換します。 |
![]() | System.IConvertible.ToUInt32 | Byte を UInt32 に変換します。 |
![]() | System.IConvertible.ToUInt64 | Byte を UInt64 に変換します。 |

Byte メンバ


名前 | 説明 | |
---|---|---|
![]() | CompareTo | オーバーロードされます。 指定したオブジェクトまたは Byte とこのインスタンスを比較し、これらの相対値を示す値を返します。 |
![]() | Equals | オーバーロードされます。 Byte の 2 つのインスタンスが同じ値を表しているかどうかを示す値を返します。 |
![]() | GetHashCode | オーバーライドされます。 このインスタンスのハッシュ コードを返します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | GetTypeCode | Byte 値型の TypeCode を返します。 |
![]() | Parse | オーバーロードされます。 数値の文字列形式を、それと等価の Byte に変換します。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | オーバーロードされます。 オーバーライドされます。 このインスタンスの数値を、それと等価の文字列に変換します。 |
![]() | TryParse | オーバーロードされます。 数値の文字列形式を、それと等価の Byte に変換します。戻り値は、変換が成功したか失敗したかを示します。 |

名前 | 説明 | |
---|---|---|
![]() | System.IConvertible.ToBoolean | Byte のこのインスタンスをブール値に変換します。 |
![]() | System.IConvertible.ToByte | Byte のこのインスタンスの値を返します。 |
![]() | System.IConvertible.ToChar | Byte のこのインスタンスを Unicode 文字に変換します。 |
![]() | System.IConvertible.ToDateTime | この変換はサポートされていません。変換を試みると、InvalidCastException がスローされます。 |
![]() | System.IConvertible.ToDecimal | Byte のこのインスタンスを Decimal 形式に変換します。 |
![]() | System.IConvertible.ToDouble | Byte のこのインスタンスを Double として変換します。 |
![]() | System.IConvertible.ToInt16 | Byte のこのインスタンスを Int16 に変換します。 |
![]() | System.IConvertible.ToInt32 | Byte 値のこのインスタンスを Int32 に変換します。 |
![]() | System.IConvertible.ToInt64 | Byte のこのインスタンスを Int64 に変換します。 |
![]() | System.IConvertible.ToSByte | Byte のこのインスタンスを SByte に変換します。 |
![]() | System.IConvertible.ToSingle | Byte を Single に変換します。 |
![]() | System.IConvertible.ToType | Byte のこのインスタンスを、指定した Type のオブジェクトに変換します。 |
![]() | System.IConvertible.ToUInt16 | Byte のこのインスタンスを UInt16 に変換します。 |
![]() | System.IConvertible.ToUInt32 | Byte を UInt32 に変換します。 |
![]() | System.IConvertible.ToUInt64 | Byte を UInt64 に変換します。 |

Byte 構造体
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Structure Byte Implements IComparable, IFormattable, IConvertible, IComparable(Of Byte), _ IEquatable(Of Byte)
[SerializableAttribute] [ComVisibleAttribute(true)] public struct Byte : IComparable, IFormattable, IConvertible, IComparable<byte>, IEquatable<byte>
[SerializableAttribute] [ComVisibleAttribute(true)] public value class Byte : IComparable, IFormattable, IConvertible, IComparable<unsigned char>, IEquatable<unsigned char>

Byte 値型は、値が 0 から 255 までの範囲の符号なし整数を表します。
Byte は、この型のインスタンスを比較したり、インスタンスの値を文字列形式に変換したり、数値の文字列形式をこの型のインスタンスに変換するためのメソッドを提供します。
書式指定コードで値型の文字列形式を制御する方法については、「書式設定の概要」を参照してください。
この型は、IComparable、IComparable、IFormattable、IConvertible の各インターフェイスを実装します。この型の明示的な IConvertible インターフェイス メンバの実装の代わりに、Convert クラスを使用します。

バイトの配列を 16 進値で表現した文字列に変換する際の Byte の使用例を次に示します。
Class HexTest Private Shared hexDigits As Char() = {"0"c, "1"c, "2"c, "3"c, "4"c, "5"c, "6"c, "7"c, "8"c, "9"c, "A"c, "B"c, "C"c, "D"c, "E"c, "F"c} Public Shared Function ToHexString(bytes() As Byte) As String Dim hexStr As String = "" Dim i As Integer For i = 0 To bytes.Length - 1 hexStr = hexStr + Hex(bytes(i)) Next i Return hexStr End Function 'ToHexString Shared Sub Main() Dim b As Byte() = {&H0, &H12, &H34, &H56, &HAA, &H55, &HFF} Console.WriteLine(ToHexString(b)) End Sub 'Main End Class 'HexTest
class HexTest { static char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; public static string ToHexString(byte[] bytes) { char[] chars = new char[bytes.Length * 2]; for (int i = 0; i < bytes.Length; i++) { int b = bytes[i]; chars[i * 2] = hexDigits[b >> 4]; chars[i * 2 + 1] = hexDigits[b & 0xF]; } return new string(chars); } static void Main() { byte[] b = {0x00, 0x12, 0x34, 0x56, 0xAA, 0x55, 0xFF}; Console.WriteLine(ToHexString(b)); } }
ref class HexTest { private: static array<Char>^hexDigits = {'0','1','2','3','4','5' ,'6','7','8','9','A','B','C','D','E','F'}; public: static String^ ToHexString( array<Byte>^bytes ) { array<Char>^chars = gcnew array<Char>(bytes->Length * 2); for ( int i = 0; i < bytes->Length; i++ ) { int b = bytes[ i ]; chars[ i * 2 ] = hexDigits[ b >> 4 ]; chars[ i * 2 + 1 ] = hexDigits[ b & 0xF ]; } return gcnew String( chars ); } }; int main() { array<Byte>^b = {0x00,0x12,0x34,0x56,0xAA,0x55,0xFF}; Console::WriteLine( HexTest::ToHexString( b ) ); }
class HexTest { private static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; public static String ToHexString(ubyte bytes[]) { char chars[] = new char[bytes.get_Length() * 2]; for (int i = 0; i < bytes.get_Length(); i++) { int b = System.Convert.ToInt32( System.Convert.ToString(bytes.get_Item(i))); chars.set_Item((i * 2), hexDigits.get_Item(b >> 4)); chars.set_Item((i * 2 + 1), hexDigits.get_Item(b & 0xF)); } return new String(chars); } //ToHexString public static void main(String[] args) { ubyte b[] = { 0x0, 0x12, 0x34, 0x56, 0xAA, 0x55, 0xFF }; Console.WriteLine(ToHexString(b)); } //main } //HexTest


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


バイト (情報)
プロセッサ |
---|
4ビット • 8ビット • 12ビット • 16ビット • 18ビット • 24ビット • 31ビット • 32ビット • 36ビット • 48ビット • 60ビット • 64ビット • 128ビット |
アプリケーション |
16ビット • 32ビット • 64ビット |
データサイズ |
ニブル • オクテット • バイト • ワード |

バイト (英: 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に収録。
記号 | Unicode | JIS X 0213 | 文字参照 | 名称 |
---|---|---|---|---|
㎅ | U+3385 |
- |
㎅ ㎅ |
キロバイト |
㎆ | U+3386 |
- |
㎆ ㎆ |
メガバイト |
㎇ | U+3387 |
- |
㎇ ㎇ |
ギガバイト |
TB | MacJapanese:0x865D CSS: font-feature-settings: "dlig" 1; |
テラバイト |
総利用率
多くのプログラミング言語がバイトデータ型を定義している。
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]。同期通信では、エラーチェックは通常、フレームの末尾のバイトを使用する。
脚注
- ^ ファミコンブームの時代には、カセットに搭載しているROMチップ(半導体部品業界ではビット単位が使われることが多い)のスペックを言っている、という理屈の下「2メガ搭載」などと単位を明示せずにビット単位の値で宣伝する、といったような広告手法があった。
- ^ 国際単位系国際文書第9版(2019)日本語版、p.112 右欄の注記
- ^ “The History of Computers - 1970s”. www.lighterra.com. 2024年12月8日閲覧。
- ^ “What is a bit, nibble or Byte?”. robotresearchlab.com. 2024年12月8日閲覧。
- ^ “Measurement unit conversion: nybble”. www.convertunits.com. 2024年12月8日閲覧。
- ^ “CJK Compatibility” (2015年). 2016年2月21日閲覧。
- ^ “The Unicode Standard, Version 8.0.0”. Mountain View, CA: The Unicode Consortium (2015年). 2016年2月21日閲覧。
- ^ “What is a "byte" in C / C++”. stackoverflow.com. 2024年12月8日閲覧。
- ^ “Memory model”. en.cppreference.com. 2024年12月8日閲覧。
- ^ “How many bytes does the C language char occupy?”. www.codeshelper.com. 2024年12月8日閲覧。
- ^ “Okay, I could imagine a machine with 9-bit bytes. But surely not 16-bit bytes or 32-bit bytes, right?”. isocpp.org. 2024年12月8日閲覧。
- ^ “Primitive Data Types”. docs.oracle.com. 2024年12月8日閲覧。
- ^ “What is data transmission?”. www.pubnub.com. 2024年12月8日閲覧。
- ^ “1TBのデータ・ストレージはいくら?”. www.filemail.com. 2024年12月8日閲覧。
- ^ “Serial Data Format”. www.ece.northwestern.edu. 2024年12月8日閲覧。
関連項目
バイトの単位一覧 | |||||
---|---|---|---|---|---|
SI接頭語 | 2進接頭辞 | ||||
単位(記号) | SI基準 | 慣用値 | 単位(記号) | 値 | SIとの差(概数) |
キロバイト (kB) | 103 | 210 | キビバイト (KiB) | 210 | 2.400000% |
メガバイト (MB) | 106 | 220 | メビバイト (MiB) | 220 | 4.857600% |
ギガバイト (GB) | 109 | 230 | ギビバイト (GiB) | 230 | 7.374182% |
テラバイト (TB) | 1012 | 240 | テビバイト (TiB) | 240 | 9.951163% |
ペタバイト (PB) | 1015 | 250 | ペビバイト (PiB) | 250 | 12.589991% |
エクサバイト (EB) | 1018 | 260 | エクスビバイト (EiB) | 260 | 15.292150% |
ゼタバイト (ZB) | 1021 | 270 | ゼビバイト (ZiB) | 270 | 18.059162% |
ヨタバイト (YB) | 1024 | 280 | ヨビバイト (YiB) | 280 | 20.892582% |
ロナバイト (RB) | 1027 | 290 | ロビバイト (RiB) | 290 | 23.794004% |
クエタバイト (QB) | 1030 | 2100 | クエビバイト (QiB) | 2100 | 26.765060% |
この表の上付き文字は環境により適切に表示されていない場合があります。 |
- byteのページへのリンク