我读了一个二进制文件,得到一个带字符的数组.当我将两个字节转换为整数时256*ord(p1) + ord(p0).它适用于正整数但是当我得到负数时它不起作用.我知道在最重要的字节中有第一位但是没有成功.
我也明白有一些东西叫做struct,在阅读后我最终得到了以下代码
import struct
p1 = chr(231)
p0 = chr(174)
a = struct.unpack('h',p0+p1)
print str(a)
Run Code Online (Sandbox Code Playgroud)
a变成-6226,如果我换掉p0,p1我得到-20761.
a 应该是-2
使用第一种方法 ( 256*ord(p1) + ord(p0)),您可以使用 来检查第一位是否为 1 if p1 & 0x80 > 0。如果是这样,那么您将使用p1 & 0x7f代替p1,然后否定最终结果。
| 归档时间: |
|
| 查看次数: |
5501 次 |
| 最近记录: |