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

时间:2014-02-19 11:43:03

标签: python string python-2.7 hex

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

我尝试了第一步:

str(int(str(item[1][:-2]),16))

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

  • [:-2]从该号码中移除最后一个
  • item[1]包含0x
  • 形式的十六进制数字

3 个答案:

答案 0 :(得分:65)

试试这个:

hex_str = "0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int)

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

print hex(new_int)[2:]

答案 1 :(得分:12)

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

print hex(int("0xAD4", 16) + int("0x200", 16)) # 0xcd4

相反,你可以直接做

print hex(int("0xAD4", 16) + 0x200) # 0xcd4

答案 2 :(得分:-1)

使用格式字符串

intNum = 123
print "0x%x"%(intNum)

hex功能。

intNum = 123
print hex(intNum)