python - 当附加了字节标记时,如何在python中将字节转换为整数?

我在 python 中有一个函数,它读取串行端口缓冲区中的前 3 个字节。然后我想将第三个字节转换为一个整数,这将允许我确定总字节数组的长度。但是,当我使用时,出现int()以下错误:

ValueError: invalid literal for int() with base 16: b'\x16'

我已经尝试将字符串进一步切片,但这只会返回 b''。如何将字节转换为整数?


慕运维8079593
浏览 93回答 3
3回答

莫回无

使用int.from_bytes().>>>int.from_bytes(b'\x00\x10', byteorder='big')16>>>int.from_bytes(b'\x00\x10', byteorder='little')4096>>>int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)-1024>>>int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)64512>>>int.from_bytes([255, 0, 0], byteorder='big')16711680

慕妹3146593

您可以使用stuct模块。但它适用于 4 个字节(int)import struct(length,) = struct.unpack('!I', my_binary)

守着一只汪

假设您使用的是 Python 3,您可以只索引字节数组并将值直接用作整数。例如>>> v = b"\0\1\2">>> v[2]2>>> v[2] + 13
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python