如何将字节数组转换为int32

时间:2014-02-20 16:42:19

标签: c#

请帮我用c#将字节数组转换为int32。

我使用了以下代码但没有得到确切的值

byte[] newArray3 = new[] { buffer[m+2], buffer[m+3], buffer[m], buffer[m+1] }; 
int t = BitConverter.ToInt32(newArray3,0);

提前致谢。

      *15 14 13 12 11 10 9 8* * 7 6 5 4 3 2 1 0**

Word1 ... S msb .... 缓冲区[m + 1] .. .........的缓冲液[米] .................

word2 ..... 缓冲区[m + 3] ........................... < strong> .buffer [m + 2] ......... lsb

2 个答案:

答案 0 :(得分:4)

使用bitshifting而不是

m[0] << 24 || m[1] << 16 || m[2] << 8 || m[3]

假设m [0]包含MSB ...

答案 1 :(得分:2)

除非您需要更改MSB位置,否则请使用

BitConverter.ToInt32(buffer, m);

无需将数据复制到其间的另一个字节数组中。

如果你确实需要更改字节顺序,那么你仍然坚持使用像上面建议的LB2一样的位移。