这是将8个8位整数的数组转换为1个64位整数的安全方法吗

2024-04-24 07:25:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理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位)

我的实现使用安全吗?还有更好的主意吗