我从速度传感器获取这些字节:
byte[] array = new byte[2];
array[0] = response.getDataPayload()[6];
array[1] = response.getDataPayload()[7];
首先是MSB(最高有效字节),第二个是LSB(低有效字节)。我知道这是因为这就是文档中的内容......
如何将两个变量转换为int / double? (在c#中)
答案 0 :(得分:4)
有一个名为BitConverter的内置类就是这样做的:
byte[] array = new byte[2];
array[0] = response.getDataPayload()[7];
array[1] = response.getDataPayload()[6];
//or, you could do:
array[0] = response.getDataPayload()[6];
array[1] = response.getDataPayLoad()[7];
Array.Reverse(array);
//end-or
short myVar = BitConverter.ToInt16(array, 0);
int myInt = (int)myVar;
double myDouble = (double)myVar;
因为2个字节是一个短(16位整数),这就是你从传感器中得到的东西。然后,如果需要,可以将其转换为完整的32位整数或双精度。
交换字节以获得字节序。
答案 1 :(得分:0)
如果您需要将所有字节转换为正数,请尝试以下方法:
<tbody>