创建一种从文件中读取正数和负数的方法

时间:2012-06-02 14:17:55

标签: python struct

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

谢谢!

1 个答案:

答案 0 :(得分:1)

这里有一些代码可以将32位无符号转换为signed:

if value >= 1<<31:
    value -= 1<<32