如何说服python int类型实际上是十六进制类型?

时间:2014-07-08 21:20:24

标签: python hex

我被赋予了一个十六进制值,它被python视为一个int。我需要将此值视为十六进制而不更改值。我尝试使用data = hex(int(data,16))但这会使我的数据成为一个字符串。有没有办法将int更改为十六进制而不实际更改表示?

Ex:data = 9663676416,type(data)= int 我想:data = 0x9663676416,type(data)= hex

1 个答案:

答案 0 :(得分:3)

x = int(str(9663676416),16)
print x
print hex(x)

如评论中所提到的,你所拥有的是一个数字....你所做的就是搞乱表达......

如果你想要type(x) == hex,你需要做其他事情(我不确定是什么......你当然可以做isinstance(x,hexNumber)

之类的事情
class hexNumber:
   def __init__(self,x):
      if isinstance(x,str):
         self.val = int(x,16)
      elif isinstance(x,int):
         self.val = int(str(x),16)
   def __str__(self):
          return hex(self.val)

y = hexNumber(12345)
print "%s"%y
print isinstance(y,hexNumber)

y = hexNumber("1234abc")
print "%s"%y
print isinstance(y,hexNumber)