将字节数组转换为xamarin pcl c中的int#
问题描述:
这是我的问题:我需要将字节数组转换为int,在xamarin pcl上。 但我有tryed这一点:将字节数组转换为xamarin pcl c中的int#
byte[] fromBoardSerial = new byte[3];
fromBoardSerial[0] = 0x04
fromBoardSerial[1] = 0x93
fromBoardSerial[2] = 0xe0
result = BitConverter.ToInt32(fromBoardSerial, 0);
解决方案:
Array.Reverse(fromBoardSerial); //call before conversion
但结果是:-527236096 ... ..而是正确的结果应该是:300000 如何从int中的数组字节进行转换?
感谢
答
看起来你这里有两个问题:
- 的字节数。您必须有4个字节才能转换为Int32。
- 字节顺序。它看起来像你试图计算你的数字“倒退”。
看看这段代码:
byte[] fromBoardSerial = new byte[4];
fromBoardSerial[0] = 0xe0;
fromBoardSerial[1] = 0x93;
fromBoardSerial[2] = 0x04;
fromBoardSerial[3] = 0x00;
var result = BitConverter.ToInt32(fromBoardSerial, 0); // result = 300000
+0
我解决了这个:Array.Reverse(fromBoardSerial);和位转换后...如果你更新答案我检查正确的答案 –
一定有什么东西错一个整数由4个字节? – NtFreX
是的是正确的...如果你会尝试它:http://www.binaryhexconverter.com/hex-to-decimal-converter –