我想将一个十六进制字符串(例如:0xAD4
)转换为十六进制数字,然后将0x200
加到该数字上,并再次以字符串形式打印该数字,格式为0x
。
我尝试了第一步:
str(int(str(item[1][:-2]),16))
但是打印出来的值是十进制字符串而不是十六进制格式化字符串(以0x格式打印最终结果)。
- 使用
[:-2]
删除该数字中的最后两个00 item[1]
包含以0x
形式表示的十六进制数
我想将一个十六进制字符串(例如:0xAD4
)转换为十六进制数字,然后将0x200
加到该数字上,并再次以字符串形式打印该数字,格式为0x
。
我尝试了第一步:
str(int(str(item[1][:-2]),16))
但是打印出来的值是十进制字符串而不是十六进制格式化字符串(以0x格式打印最终结果)。
[:-2]
删除该数字中的最后两个00item[1]
包含以0x
形式表示的十六进制数试试这个:
hex_str = "0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int)
如果不喜欢开头的0x
,请将最后一行替换为:
print hex(new_int)[2:]
int(hex_str, base=16)
而不是int(hex_str, 16)
。请注意,有关int()
的文档在此处:https://docs.python.org/3/library/functions.html#int - Gabriel StaplesintNum = 123
print "0x%x"%(intNum)
或者使用hex
函数。
intNum = 123
print hex(intNum)
'but it is only converting that number to int not in hex'
。这就是第二次评论你的原因。 - Grijesh Chauhan
2772
和0XAD4
之间没有区别。因此,如果i = 0XAD4
,那么print i
将输出2772
而不是ad4
,OP需要使用%x
。 - Grijesh Chauhan