python - 如何将字节数组或字节对象拆分为 16 位整数?
问题描述
给定一个bytearray
长度为 2xN 的对象,如何从该对象中获取 N 个 16 位整数的列表(或数组)?
例如,如果ba
定义为:
ba = bytearray([0x01, 0x02, 0x01, 0x03, 0xff, 0xff])
然后转换后的结果应该是这样的:
ia = [0x0102, 0x0103, 0xffff]
print(ia[1]) ==> 0x0103
解决方案
您可以使用int.from_bytes
和一些列表理解。请注意,byte_order
需要指定,因此您可能必须根据您的应用程序进行更改。
ba = bytearray([0x01, 0x02, 0x01, 0x03, 0xff, 0xff])
ia = [int.from_bytes(ba[i:i+2], "big") for i in range(0, len(ba), 2)]
推荐阅读
- python - Discord bot 未出现在服务器中
- java - 单击连接辅助示例代码时未在 Eclipse 上显示?
- c# - C# SharePoint CSOM:更新多行文本字段
- javascript - React Native(Expo):TouchableOpacity onPress 不是函数/未定义
- bootstrap-table - 如何动态添加和更新行元素
- python-3.x - 未找到 Jenkins ImportError 模块
- javascript - AWS 人群表单以禁用默认的“提交”按钮
- vue.js - 如果您不希望它像组件一样呈现,如何在 vue 中显示原始 html 代码
- angular - npm start (angular 11) 抛出错误(未知错误:SyntaxError: Unexpected token '*')
- python - 如何在 python 中处理大型图像数据集?