我得到了一个十六进制值,Python 将其视为 int。我需要将此值视为十六进制而不更改该值。我尝试使用 data = hex(int(data, 16)) 但这使我的数据成为字符串。有没有办法将 int 更改为十六进制而不实际更改表示形式?
例如:数据 = 9663676416,类型(数据)= int 我想要:数据 = 0x9663676416,类型(数据)= 十六进制
最佳答案
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)
关于python - 如何让Python相信int类型实际上是hex类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641808/