如何將位元組陣列轉換成 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) 方法,將陣列中的四個位元組轉換成 int
。 ToInt32(Byte[], Int32) 的第二個引數指定位元組陣列的起始索引。
注意
輸出會視電腦架構順序而有所不同。
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