2014-02-19 240 views
17

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

我试图用于第一步:

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

但是,这是获得打印的值为小数字符串不是一个十六进制格式的字符串(在0X格式)(我想打印的形式的最终结果0x

  • [:-2]从该数
  • item[1]删除最后00是包含在0x
  • 形式的十六进制数
+4

Python中没有这样的东西作为十六进制数。只有数字。所以你想要将一个十六进制字符串转换为一个数字,而不是一个十六进制数字,然后你想打印一个数字为十六进制。 –

+0

@SteveJessop你的评论是回答,并且两个答案都是评论:) –

+0

@GrijeshChauhan:不,这不是一个答案。这个问题包含一个误解,但纠正了这种误解之后,问题依然存在,我的评论没有回答。答案是。 –

回答

34

试试这个:

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

如果你不喜欢在一开始0x,与

print hex(new_int)[2:] 
替换最后一行
+0

感谢这么快的答复.. – RATHI

8

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

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

相反,你可以直接做

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

我相信OP的混淆在于,当他打印'i'时,他区分'i = 0xad4'和'i = 2772'。 (似乎当我读他的感谢)反正+你们两个,因为我没有现在'十六进制()' –

-1

使用格式stri ng

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

hex功能。

intNum = 123 
print hex(intNum) 
+0

它看起来像互惠OP要“字符串到十六进制数字”,但你的答案是“数字到十六进制字符串”! –

+0

您可以通过添加以下事实来改善答案:以'0x'开头的十六进制数字仅为用户提供方便每个数字都以二进制形式存储,甚至不会以十进制形式存储。 –

+0

我想他想将整数转换为十六进制字符串。因为他已经将十六进制字符串转换为整数。 –

相关问题