请帮我用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
答案 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一样的位移。