将字节转换为int?


问题内容

我目前正在开发一个加密/解密程序,我需要能够将字节转换为整数。我知道:

bytes([3]) = b'\x03'

但是我找不到如何进行逆运算的方法。我到底在做什么错?


问题答案:

假设您至少使用3.2,则有一个内置功能

int.from_bytes字节,字节序,*,带符号= False

参数字节必须是类似字节的对象或可迭代的生成字节。

byteorder参数确定用于表示整数的字节顺序。如果byteorder为“
big”,则最高有效字节在字节数组的开头。如果字节序为“小”,则最高有效字节在字节数组的末尾。要请求主机系统的本机字节顺序,请使用sys.byteorder作为字节顺序值。

带符号的自变量指示是否使用二进制补码表示整数。

## Examples:
int.from_bytes(b'\x00\x01', "big")                         # 1
int.from_bytes(b'\x00\x01', "little")                      # 256

int.from_bytes(b'\x00\x10', byteorder='little')            # 4096
int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)  #-1024