我有一个数字是“有效字节”,它可能是 0 或 255。
这意味着 0 或 -1。
如何一次性将 255 转换为 -1。
我有一个功能对我不起作用:
acc->x = ((raw_data[1]) << 8) | raw_data[0];
最佳答案
假设每第 8 位设置为 1 表示负数 (254 == -2),那么从signed 类型进行扩大转换应该做到:
int n = (signed char)somebyte;
所以
unsigned char rawdate[2] = ...;
int msbyte = (signed char)rawdata[1];
acc->x = (msbyte << 8) | (raw_data[0] & 0xFF);
关于c - 二进制补码 stm32 c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8455682/