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'
我有四个 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'