
TMP102温度传感器(二进制补码和原码相互转换)
以12位有符号数据为例,在TMP102中,bit11为符号位,有效数据只有11位[10:0]。而在32位单片机中,例如STM32中,有符号数据的符号位为bit31,有效数据为[30:0]。那么同样的负数,在不同系统中存储的编码是不同的。例如,在32位系统中,-400=0xFFFF_FE70。而16位系统中,-400=0xFE70,12位系统-400=0xE70。简单来说,整形int在不同的系统的寻址空间长度不一样。还有很多其他的芯片,寄存器内部也是保存着二进制补码,对于负数的读取也可以使用这种函数。











