我生成了一个随机的16字节字符串。看起来像这样:
b'\xb68 \xe9L\xbd\x97\xe0\xd6Q\x91c\t\xc3z\\'
我想将其转换为(正)整数。用Python执行此操作的最佳方法是什么?
感谢您的帮助。
最佳答案
在Python 3.2+中,您可以使用int.from_bytes()
:
>>> int.from_bytes(b'\xb68 \xe9L\xbd\x97\xe0\xd6Q\x91c\t\xc3z\\', byteorder='little')
122926391642694380673571917327050487990
您还可以使用“大”字节顺序:
>>> int.from_bytes(b'\xb68 \xe9L\xbd\x97\xe0\xd6Q\x91c\t\xc3z\\', byteorder='big')
242210931377951886843917078789492013660
您还可以指定是否要使用二进制补码表示形式。有关更多信息:https://docs.python.org/3/library/stdtypes.html