2017-02-13 55 views
0

这是我的问题:我需要将字节数组转换为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中的数组字节进行转换?

感谢

+0

一定有什么东西错一个整数由4个字节? – NtFreX

+0

是的是正确的...如果你会尝试它:http://www.binaryhexconverter.com/hex-to-decimal-converter –

回答

1

看起来你这里有两个问题:

  1. 的字节数。您必须有4个字节才能转换为Int32。
  2. 字节顺序。它看起来像你试图计算你的数字“倒退”。

看看这段代码:

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);和位转换后...如果你更新答案我检查正确的答案 –