如何说服Python将整型视为十六进制类型?
我有一个十六进制的值,但在Python中它被当作整数来处理。我需要让这个值以十六进制的形式存在,但又不想改变它的实际数值。我试过用 data = hex(int(data, 16)),但这样会把我的数据变成字符串。有没有办法在不改变表示方式的情况下,把整数变成十六进制?
举个例子:data = 9663676416,type(data) = int 我想要的是:data = 0x9663676416,type(data) = hex
1 个回答
3
x = int(str(9663676416),16)
print x
print hex(x)
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)
正如评论中提到的,你现在得到的是一个数字……你所做的只是改变它的表现方式……
如果你想让 type(x) == hex
,你需要做一些其他的事情(老实说,我也不太确定该怎么做……不过你可以做一些像 isinstance(x,hexNumber)
这样的操作)