从python中的文件读取负值

2024-07-05 14:13:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从压缩文件中读取一些负值,该文件包含十六进制值:

  • FFFFFFFF,应为-1,但显示为4294967295
  • fffffff e,应为-2,但显示为4294967294

我知道FF应该是-但是python中是否有一个方法可以直接读取值,或者我必须创建自己的方法?在

谢谢你!在

编辑:这是针对python2.6的。我的程序从二进制数据中读取,我只是用十六进制显示它以使它更简单。程序一次只读取4个字节,然后从这4个字节中获取值。只是其中一些值是负数,显示了上面的数字。我也希望有人能解释Python如何将二进制数据解释为一个值,这样我就可以编写一个反向协议。谢谢您!在

我从hex读取并通过这个方法转换成值。在

def readtoint(read):
    keynumber = read[::-1]
    hexoffset=''
    for letter in keynumber:
        temp=hex(ord(letter))[2:]
        if len(temp)==1:
            temp="0"+temp
        hexoffset += temp
    value = int(hexoffset, 16)
    return value

它获取4个字节,颠倒顺序,然后将十六进制值转换为int值。我在上面发布的值已经颠倒了。在


Tags: 数据方法程序read字节value二进制temp
2条回答

使用struct模块:

import struct

def readtoint(read):
    return struct.unpack('<i', read)[0]

示例:

^{pr2}$

张贴你的文件阅读代码,以获得完美的答案。但你的问题的答案几乎可以肯定的是:

Reading integers from binary file in Python

相关问题 更多 >