如何说服Python将整型视为十六进制类型?

1 投票
1 回答
1419 浏览
提问于 2025-04-18 12:34

我有一个十六进制的值,但在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) 这样的操作)

撰写回答