字节串中的四个连续字节共同指定了某个值。但是,每个字节只使用了 7 位;最高有效位始终为零,因此被忽略(总共 28 位)。所以……
b"\x00\x00\x02\x01"
将是 000 0000
000 0000
000 0010
000 0001
。
或者,为了易读性,10 000 0001
。这就是四个字节代表的值。但我想要一个小数,所以我这样做:
>>> 0b100000001
257
我可以自己解决所有这些问题,但我如何将其整合到程序中呢?
最佳答案
使用位移和加法:
bytes = b"\x00\x00\x02\x01"
i = 0
for b in bytes:
i <<= 7
i += b # Or use (b & 0x7f) if the last bit might not be zero.
print(i)
结果:
257
关于python - 在 Python 中处理字节和二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587438/