如何读取和切断MSB?

时间:2014-02-24 07:58:07

标签: python numbers bit signed

我有一个数字,我从I2C总线上的寄存器中读取。这是一个16位有符号数,但Python无法识别符号位并将其用作数字的一部分。如何只读取数字的MSB,然后从数字中删除它?

1 个答案:

答案 0 :(得分:0)

value = 0xFFFF
msb = 1 if value | 0x8000 else 0
value &= 0x7FFF

print('msb: {}, value: 0x{:X}'.format(msb, value))  # msb: 1, value: 0x7FFF