方法: バイト配列を int に変換する (C# プログラミング ガイド)How to: Convert a byte Array to an int (C# Programming Guide)

次の例では、BitConverter クラスを使用して、バイト配列を int に変換する方法、またバイト配列に戻す方法を示しています。This example shows you how to use the BitConverter class to convert an array of bytes to an int and back to an array of bytes. たとえば、ネットワークからバイトを読み込んだ後、バイトから組み込みデータ型への変換が必要になる場合があります。You may have to convert from bytes to a built-in data type after you read bytes off the network, for example. この例の ToInt32(Byte[], Int32) メソッド以外にも、バイト列を (バイト配列から) 他の組み込み型に変換する BitConverter クラスのメソッドがあります。次の表にそれらのメソッドを示します。In addition to the ToInt32(Byte[], Int32) method in the example, the following table lists methods in the BitConverter class that convert bytes (from an array of bytes) to other built-in types.

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

Example

この例では、バイトの配列を初期化して、コンピューター アーキテクチャがリトル エンディアンである場合 (つまり、下位バイトから先に格納する場合) は、配列を反転します。次に、ToInt32(Byte[], Int32) メソッドを呼び出して、配列内の 4 バイトを int に変換します。This example initializes an array of bytes, reverses the array if the computer architecture is little-endian (that is, the least significant byte is stored first), and then calls the ToInt32(Byte[], Int32) method to convert four bytes in the array to an int. ToInt32(Byte[], Int32) の 2 番目の引数は、バイト配列の開始インデックスを指定します。The second argument to ToInt32(Byte[], Int32) specifies the start index of the array of bytes.

注意

出力は、コンピューター アーキテクチャのエンディアンによって異なる場合があります。The output may differ depending on the endianess of your computer's architecture.

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

Example

この例では、BitConverter クラスの GetBytes(Int32) メソッドを呼び出して、int をバイト配列に変換します。In this example, the GetBytes(Int32) method of the BitConverter class is called to convert an int to an array of bytes.

注意

出力は、コンピューター アーキテクチャのエンディアンによって異なる場合があります。The output may differ depending on the endianess of your computer's architecture.

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

関連項目See also