字节串中的四个连续字节一起指定一些值.但是,每个字节只使用7位; 最高有效位始终为零,因此忽略它(总共产生28位).所以...
b"\x00\x00\x02\x01"
Run Code Online (Sandbox Code Playgroud)
会的000 0000 000 0000 000 0010 000 0001.
或者,为了易读性,10 000 0001.这是四个字节代表的值.但我想要一个小数,所以我这样做:
>>> 0b100000001
257
Run Code Online (Sandbox Code Playgroud)
我可以自己完成所有这些工作,但是我如何将它合并到一个程序中呢?
使用位移和添加:
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)
Run Code Online (Sandbox Code Playgroud)
结果:
257
Run Code Online (Sandbox Code Playgroud)