python - 这是将 8 个 8 位整数数组转换为 1 个 64 位整数的安全方法吗
问题描述
我正在处理如下所示的 8 位整数数组:
ph0 = [[255, 0, 65, 165, 23, 32, 198, 43]]
我想将数组转换为整数,以便连接数组中元素的二进制表示将匹配整数的二进制表示。
所以使用上面的例子,它的二进制表示将是:
['0b11111111', '0b00000000', '0b01000001', '0b10100101', '0b00010111', '0b00100000', '0b11000110', '0b00101011']
最后,我想要一个整数,其二进制表示将所有这些二进制值连接在一起。像这样:
0b1111111100000000010000011010010100010111001000001100011000101011
这就是我想出的:
def convertArrayToInt(hashArr):
val = 0
for i in range(len(hashArr[0])-1, -1, -1):
val += (hashArr[0][i])*2**((7-i)*8)
return val
我可以忠实地假设每个插槽不超过 255(因此不必担心插槽占用超过 8 位)。
我的实现可以安全使用吗?有没有更好的想法?
解决方案
你有一个int
对象列表。但这可以使用以下方法简单地完成:
int.from_bytes(bytes([255, 0, 65, 165, 23, 32, 198, 43]), 'big')
推荐阅读
- java - 进度计数未显示 100%
- node.js - Nodemon 错误:已达到文件观察者数量的系统限制
- javascript - 使用 JavaScript 为事件侦听器添加冷却时间
- c# - 自动代理切换器 WInform (C#)
- django - 我们可以在 Django 的 models.py 中定义数据库名称吗?
- vba - 如何从 OneNote 表格中获取数据到 Outlook 宏?
- leaflet - 在 TomTom 地图上显示路线的总道路距离
- c# - 由两个对象组成的对象
- html - 如何使用 css 正确实现边框图像?
- ruby-on-rails - 为什么我会得到未定义的方法“default_scoped?”?