如何在 python3 中更快地将可变长度字节(小于 8)转换为 long long int?

How to turn variable length bytes(less than 8) to long long int faster in python3?

我试过使用 while 循环和 struct.unpack 来解决这样的问题:

import struct

def func(inputBytes):
    inputBytes = bytearray(inputBytes)
    while inputBytes.__len__() < 8:
        inputBytes.append(0)
    inputBytes.reverse()
    return struct.unpack("!q", inputBytes)[0]

print(func(b'\x00\x01'))

但是太slow.How让它变快了?

我以前觉得太复杂了。直接计算更快。

def func(rawData):
    sum = 0
    for i in rawData[::-1]:
        sum += i
        sum <<= 8

    sum >>= 8
    return sum