【问题标题】:Is this a secure way of converting an array of 8 8bit integers into 1 64bit integer这是将 8 个 8 位整数数组转换为 1 个 64 位整数的安全方法吗
【发布时间】:2021-03-06 19:42:46
【问题描述】:

我正在处理如下所示的 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

我可以忠实地假设每个 slot 不超过 255(因此不必担心 slot 占用超过 8 位)。

我的实现可以安全使用吗?有更好的想法吗?

【问题讨论】:

    标签: python binary integer


    【解决方案1】:

    您有一个int 对象列表。但这可以简单地使用:

    int.from_bytes(bytes([255, 0, 65, 165, 23, 32, 198, 43]), 'big')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 2014-10-07
      • 2011-04-21
      • 2016-01-03
      • 2019-08-17
      • 1970-01-01
      相关资源
      最近更新 更多