You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将编码载荷转为字节列表?传感器解码入门求助

传感器数据编码载荷转字节切片解决办法

你手里的编码载荷0xB84426C3032E28C30328C20228C20226C40326C30226C40326C303转字节切片的问题,之前的代码无效是两个原因:

  • bytearray.fromhex()不能识别0x前缀,这个方法只接受纯十六进制字符组成的字符串
  • 用整数调用to_bytes(2, 'big')时,指定的2字节长度太小,这个整数对应的字节数远超过2,会直接报错

给你两个可行的解决方法:

方法一:去掉前缀后用fromhex转换

直接把0x去掉,用纯十六进制字符串转字节数组:

# 去掉0x前缀的十六进制字符串
payload_hex = "B84426C3032E28C30328C20228C20226C40326C30226C40326C303"
# 转换为字节切片
byte_slice = bytearray.fromhex(payload_hex)
print(byte_slice)

方法二:基于整数自动计算字节数转换

如果载荷已经是Python中的整数类型,自动计算它需要的字节数再转换:

# 载荷对应的整数
payload_int = 0xB84426C3032E28C30328C20228C20226C40326C30226C40326C303
# 计算所需字节数:bit_length获取二进制位数,加7后整除8得到字节数
byte_count = (payload_int.bit_length() + 7) // 8
# 转换为字节切片(big表示大端字节序,可根据文档要求调整为little)
byte_slice = payload_int.to_bytes(byte_count, 'big')
print(byte_slice)

两种方法都能得到符合要求的字节切片,你可以根据手里的载荷类型(字符串/整数)选择对应的方式。

内容的提问来源于stack exchange,提问作者Chau Loi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:15:41