我需要将看起来像b'\xa3\x13\xa4;\xcb\xda\x1b\x1b,Ut\xde\xeb2\xb5\x84\xe5&\x85;'的原始二进制值解码为十六进制值,然后看起来像0x90D152B5ED57E00336FD8E106A7BCE28FC3EA588

我尝试使用raw_bin.decode(“ hex”),但这告诉我使用codecs.decode(),但是我迷路了。

如何在python中将b'\xa3\x13\xa4;\xcb\xda\x1b\x1b,Ut\xde\xeb2\xb5\x84\xe5&\x85;'解码为0x90D152B5ED57E00336FD8E106A7BCE28FC3EA588

最佳答案

使用binascii.hexlify

>>> x = b'\xa3\x13\xa4;\xcb\xda\x1b\x1b,Ut\xde\xeb2\xb5\x84\xe5&\x85;'
>>> binascii.hexlify(x).decode()
'a313a43bcbda1b1b2c5574deeb32b584e526853b'


使用intbase参数将其转换为数字16:

>>> int(binascii.hexlify(x), 16)
931003516565576134942949873523045876335469036859
>>> int(binascii.hexlify(x), 16) == 0xa313a43bcbda1b1b2c5574deeb32b584e526853b
True

10-05 20:24