1

我想创建一个可以从 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中有没有可以同时处理负值和正值的方法?

谢谢!

4

1 回答 1

1

下面是一些将 32 位无符号转换为有符号的代码:

if value >= 1<<31:
    value -= 1<<32
于 2012-06-02T14:24:32.533 回答