c ++将两个字节解析为int

Nan*_*Bob -1 c++ int byte

我通过I2C从传感器读取两个字节,这些字节存储为unsigned char.我知道哪个是最重要的字节,哪个是最不重要的字节.

unsigned char yawMSB;
unsigned char yawLSB;
Run Code Online (Sandbox Code Playgroud)

我如何将这两个字节的数据转换成一个int

我已经在C#中正确实现了这个

BitConverter.ToInt16(new byte[] { yawLSB, yawMSB }, 0)
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 5

在16位整数中,前8位是最高有效字节,低8位是最低有效字节.

要使最高有效字节占据最高位,您需要将其值向上移位(8位),这是通过左移位运算符完成的<<.

然后,为了获得最低有效字节,您只需使用按位或低位添加低8位|.

放在一起会是这样的yawMSB << 8 | yawLSB.