我想创建一个可以从4字节十六进制读取正值和负值的方法。我现在使用的方法只适用于正值。
def readtoint(read):
keynumber = read[::-1]
hexoffset=''
for letter in keynumber:
temp=hex(ord(letter))[2:]
if len(temp)==1:
temp="0"+temp
hexoffset += "\\x"+temp
#value = int(hexoffset, 16)
return struct.unpack('<i', value)[0]
上述方法目前不起作用,因为我试图使其与负数一起使用。基本上我的程序所做的是从文件读取4个字节,反转顺序,将其转换为十六进制,然后将十六进制转换为整数。对于负值,我被告知使用struct模块,但它似乎不适用于正值。 python中有一个方法可以处理负值和正值吗?
谢谢!
答案 0 :(得分:1)
这里有一些代码可以将32位无符号转换为signed:
if value >= 1<<31:
value -= 1<<32