バイト配列を int に変換する方法 (C# プログラミング ガイド)

次の例では、BitConverter クラスを使用して、バイト配列を int に変換する方法、またバイト配列に戻す方法を示しています。 たとえば、ネットワークからバイトを読み込んだ後、バイトから組み込みデータ型への変換が必要になる場合があります。 この例の ToInt32(Byte[], Int32) メソッド以外にも、バイト列を (バイト配列から) 他の組み込み型に変換する BitConverter クラスのメソッドがあります。次の表にそれらのメソッドを示します。

返される型 メソッド
bool ToBoolean(Byte[], Int32)
char ToChar(Byte[], Int32)
double ToDouble(Byte[], Int32)
short ToInt16(Byte[], Int32)
int ToInt32(Byte[], Int32)
long ToInt64(Byte[], Int32)
float ToSingle(Byte[], Int32)
ushort ToUInt16(Byte[], Int32)
uint ToUInt32(Byte[], Int32)
ulong ToUInt64(Byte[], Int32)

使用例

この例では、バイトの配列を初期化して、コンピューター アーキテクチャがリトル エンディアンである場合 (つまり、下位バイトから先に格納する場合) は、配列を反転します。次に、ToInt32(Byte[], Int32) メソッドを呼び出して、配列内の 4 バイトを int に変換します。 ToInt32(Byte[], Int32) の 2 番目の引数は、バイト配列の開始インデックスを指定します。

注意

出力は、コンピューター アーキテクチャのエンディアンによって異なる場合があります。

byte[] bytes = [0, 0, 0, 25];

// If the system architecture is little-endian (that is, little end first),
// reverse the byte array.
if (BitConverter.IsLittleEndian)
    Array.Reverse(bytes);

int i = BitConverter.ToInt32(bytes, 0);
Console.WriteLine("int: {0}", i);
// Output: int: 25

この例では、BitConverter クラスの GetBytes(Int32) メソッドを呼び出して、int をバイト配列に変換します。

注意

出力は、コンピューター アーキテクチャのエンディアンによって異なる場合があります。

byte[] bytes = BitConverter.GetBytes(201805978);
Console.WriteLine("byte array: " + BitConverter.ToString(bytes));
// Output: byte array: 9A-50-07-0C

関連項目