2014-02-24 9 views
0

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

回答

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

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