バイト配列を 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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET