gpt4 book ai didi

python - 从python中的文件中读取负值

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:55 28 4
gpt4 key购买 nike

我正在尝试从具有十六进制值的压缩文件中读取一些负值:

  • FFFFFFFF,本应为-1,但显示为4294967295
  • FFFFFFFE,本应为-2,但显示为4294967294

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

谢谢!

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

我通过这种方法从十六进制读取并转换为值。

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 值。我在上面发布的值已经颠倒了。

最佳答案

使用结构模块:

import struct

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

例子:

>>> readtoint('\xfe\xff\xff\xff')
-2

关于python - 从python中的文件中读取负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10833042/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com