c - 二进制补码 stm32 c

标签 c twos-complement stm32

我有一个数字是“有效字节”,它可能是 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/

相关文章:

python - 调试 Python C 扩展模块中的引用计数内存泄漏

stm32 - STM32 单元测试

usb - STM32CubeMX USB CDC VCP?

c - 为什么我不能溢出全局变量?

c - 如何限制客户端服务器程序的连接数

c - 如何将一个 long long 整数拆分为数千个以便输出?

python - 使用二进制补码在 DEC(基数 10)和 HEX(基数 16)之间转换

c# - 如何让 BigInteger 正确地看到这个十六进制字符串的二进制表示?

math - 5位二进制补码中代表有符号数的最高和最低整数是多少?

c - 标准 C 函数的线程安全版本 'localtime'