如何将十六进制字符串转换为十六进制数字

RAT*_*THI 41 python string hex python-2.7

我想将十六进制字符串(例如:)转换为十六0xAD4进制数字,然后添加0x200到该数字并再次想要以0x字符串形式打印该数字.

我尝试了第一步:

str(int(str(item[1][:-2]),16))
Run Code Online (Sandbox Code Playgroud)

但是打印的值是十进制字符串而不是十六进制格式的字符串(0x格式)(我想以形式打印最终结果0x)

  • [:-2] 从该号码中删除最后一个00
  • item[1] 包含十六进制数 0x

Bac*_*ach 82

试试这个:

hex_str = "0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int)
Run Code Online (Sandbox Code Playgroud)

如果您不喜欢0x开头,请用最后一行替换

print hex(new_int)[2:]
Run Code Online (Sandbox Code Playgroud)

  • 我想更明确一点:`int(hex_str,base = 16)`而不是`int(hex_str,16)`。请注意,这里的`int()`文档位于:https://docs.python.org/3/library/functions.html#int (2认同)

the*_*eye 14

使用int带有第二个参数16的函数将十六进制字符串转换为整数.最后,使用hex函数将其转换回十六进制数.

print hex(int("0xAD4", 16) + int("0x200", 16)) # 0xcd4
Run Code Online (Sandbox Code Playgroud)

相反,你可以直接做

print hex(int("0xAD4", 16) + 0x200) # 0xcd4
Run Code Online (Sandbox Code Playgroud)