Python: 将多个十六进制值的字符串转换为整数

Python: convert string of multiple hexadecimal values to integer

我有四个 hex 数字的字符串,例如:

"0x00 0x01 0x13 0x00" 

相当于0x00011300。我如何将这个十六进制值转换为整数?

因为您有 hex 个值的字符串。您可以从字符串中删除 ' 0x' 以获得单个十六进制数字字符串。例如:

my_str =  "0x00 0x01 0x13 0x00"
hex_str = my_str.replace(' 0x', '')

hex_str持有的价值将是:

'0x00011300'   # `hex` string

现在您可以将 hex 字符串转换为 int 为:

>>> int(hex_str, 16)
70400

答案在这里Convert hex string to int in Python

没有0x前缀,需要明确指定基数,否则没法分辨:

x = int("deadbeef", 16)

加上0x前缀,Python可以自动区分十六进制和十进制。

print int("0xdeadbeef", 0)
3735928559

print int("10", 0)
10

(您必须指定 0 作为基数才能调用此 prefix-guessing 行为;省略第二个参数意味着假定基数为 10。有关更多详细信息,请参阅注释。)

>>> s="0x00 0x01 0x13 0x00"
>>> a=0
>>> for b in s.split():
...    a = a*256 + int(b,16)
... 
>>> a
70400
>>> hex(a)
'0x11300'