python - 如何让Python相信int类型实际上是hex类型?

标签 python hex

我得到了一个十六进制值,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/

相关文章:

python - 列表理解与任何

c - 打印大写字母的十六进制

python - 使用 webassets 混合 css 和 less

Debian 8 上的 Python numba/llvmlite - 我无法构建 llvmlite

python - PySpark 以密集向量形式读入文本文件

python - 如何将集合中的条目连接成一个字符串?

c - 在C中读取包含十六进制值的char数组

go - 使用 "crypto/rand"生成随机字符串直到成功是个好主意吗?

Python 2.7.11 : How to read (big) binary file from/at hex offset

ruby - 如何将数字中的字节转换为字符串? (数字的字符表示)