2

我正在使用 BitConverter.ToInt32 将 Byte 数组转换为 int。

我只有两个字节[0][26],但是函数需要4个字节,所以我必须在现有字节的前面添加两个0字节。

什么方法最快。

谢谢你。

4

3 回答 3

2

你可能应该这样做(int)BitConverter.ToInt16(..)ToInt16将两个字节读入一个short. 然后,您只需将其转换为int带有演员表的 a 。

于 2012-07-20T02:44:34.470 回答
2

您应该调用 `BitConverter.ToInt16,它只读取两个字节。

short可以隐式转换为int.

于 2012-07-20T02:44:44.733 回答
1

Array.Copy. 这是一些代码:

byte[] arr = new byte[] { 0x12, 0x34 };
byte[] done = new byte[4];
Array.Copy(arr, 0, done, 2, 2); // http://msdn.microsoft.com/en-us/library/z50k9bft.aspx
int myInt = BitConverter.ToInt32(done); // 0x00000026

但是,调用 `BitConverter.ToInt16(byte[]) 似乎是一个更好的主意,然后将其保存到一个 int 中:

int myInt = BitConverter.ToInt16(...);

但是请记住字节顺序。在小端机器上,{ 0x00 0x02 }实际上是 512,而不是 2(0x0002仍然是 2,不管字节顺序)。

于 2012-07-20T02:43:24.217 回答