我想将十六进制字符串(例如:0xAD4
)转换为十六进制数字,然后将0x200
添加到该数字,并再次希望以0x
的形式打印该数字一个字符串。
我尝试了第一步:
str(int(str(item[1][:-2]),16))
但是要打印的值是十进制字符串而不是十六进制格式的字符串(0x格式)(我想以0x
的形式打印最终结果)
[:-2]
从该号码中移除最后一个item[1]
包含0x
答案 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)