在Python中将十六进制数据转换为有符号整数

时间:2016-03-18 05:53:37

标签: python signed

我正在使用AARDVARK python模块从寄存器中获取值(2个字节)。该值以十六进制格式返回。所以我将值转换为decimal。因为寄存器值可能是负数,所以如果需要,我需要转换为有符号整数。 我遇到了下面这段代码,我无法理解它背后的逻辑。

myValue = int(myValue,16)
if( myValue > 32768):
      myValue = ((myValue+0x8000)&0xFFFF) - 0x8000

例如,如果从寄存器读取的myValue为32769,则使用上述代码后的相应签名表示为-32767

0 个答案:

没有答案