如何获得最重要且不太重要的字节的int / double?

时间:2015-04-27 20:14:30

标签: c# unity3d garmin

我从速度传感器获取这些字节:

 byte[] array = new byte[2];

 array[0] = response.getDataPayload()[6]; 
 array[1] = response.getDataPayload()[7];

首先是MSB(最高有效字节),第二个是LSB(低有效字节)。我知道这是因为这就是文档中的内容......

如何将两个变量转换为int / double? (在c#中)

2 个答案:

答案 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>