gpt4 book ai didi

python - 将二进制数据转换为有符号整数

转载 作者:太空狗 更新时间:2023-10-30 01:23:57 25 4
gpt4 key购买 nike

我读取一个二进制文件并得到一个包含字符的数组。将两个字节转换为整数时,我执行 256*ord(p1) + ord(p0)。它适用于正整数,但当我得到负数时它不起作用。我知道在最高有效字节中有第一位但没有成功。

我也知道有一种叫做struct 的东西,阅读后我得到了以下代码

import struct

p1 = chr(231)
p0 = chr(174)

a = struct.unpack('h',p0+p1)

print str(a)

a 变为 -6226,如果我交换 p0p1,我得到 -20761。

a 应该是 -2

最佳答案

-2 对于您指定的值不正确,字节顺序很重要。 struct使用 >对于 big-endian(最高有效字节在前)和 <对于 little-endian(最低有效字节优先):

>>> import struct
>>> struct.pack('>h',-2)
'\xff\xfe'
>>> struct.pack('<h',-2)
'\xfe\xff'
>>> p1=chr(254) # 0xFE
>>> p0=chr(255) # 0xFF
>>> struct.unpack('<h',p1+p0)[0]
-2
>>> struct.unpack('>h',p0+p1)[0]
-2

关于python - 将二进制数据转换为有符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810704/

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