我被赋予了一个十六进制值,它被python视为一个int。我需要将此值视为十六进制而不更改值。我尝试使用data = hex(int(data,16))但这会使我的数据成为一个字符串。有没有办法将int更改为十六进制而不实际更改表示?
Ex:data = 9663676416,type(data)= int 我想:data = 0x9663676416,type(data)= hex
答案 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)