为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕运维8079593 2022-04-23 16:54:21
我在 python 中有一个函数,它读取串行端口缓冲区中的前 3 个字节。然后我想将第三个字节转换为一个整数,这将允许我确定总字节数组的长度。但是,当我使用时,出现int()以下错误:ValueError: invalid literal for int() with base 16: b'\x16'我已经尝试将字符串进一步切片,但这只会返回 b''。如何将字节转换为整数?
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

使用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


查看完整回答
反对 回复 2022-04-23
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您可以使用stuct模块。但它适用于 4 个字节(int)


import struct


(length,) = struct.unpack('!I', my_binary)


查看完整回答
反对 回复 2022-04-23
?
守着一只汪

TA贡献1872条经验 获得超3个赞

假设您使用的是 Python 3,您可以只索引字节数组并将值直接用作整数。例如


>>> v = b"\0\1\2"

>>> v[2]

2

>>> v[2] + 1

3


查看完整回答
反对 回复 2022-04-23
  • 3 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信