【问题标题】:Declaring a variable as hex in Python在 Python 中将变量声明为十六进制
【发布时间】:2021-01-12 09:43:40
【问题描述】:

我有一个变量

s=64

这个变量是十六进制的。但 Python 将其视为十进制。如何将其声明为十六进制变量?

我知道将某些东西声明为十六进制,我们使用

s=0x64

但我只有

s=64

我该怎么办?

【问题讨论】:

  • 您希望您的 s 变量保持与十六进制相同吗?
  • 参考this解决方案
  • 可是我只有s=64,你的意思是你只有s=64
  • 64 是十进制的数字 64。 0x64 是十六进制的数字 100。 0x40 是十六进制的数字 64。这些是你想要的吗?如果没有,你还想要什么?
  • 这里有什么问题?如您所说,您将基数 16 与 0x 一起使用,当您这样做时,您以十六进制声明数字。您还想以十六进制打印数字吗?请更清楚。

标签: python variables type-conversion hex


【解决方案1】:

我认为这是您的代码理论或问题中缺少的东西。

一件事是价值,另一件事是呈现(解释)。 所以值是 100(十进制),但它可以被视为(转换)为十进制或十六进制(或任何你喜欢的):

>>> s=0x64
>>> s
100
>>> hex(s)
'0x64'
>>> h = int(str(0x64), 16)
>>> h
256

Python 将整数存储为小数(默认情况下)。如果你想要一个十六进制的数字,你应该编写你自己的类并使用我上面展示的转换例程。

【讨论】:

    【解决方案2】:

    十六进制(基数为 16)的数字 64100。为了得到你的答案,你应该使用hex()int()str()的组合 如果您以s = 64 开头,并且希望以s = 100 结尾,这是0x64 的十进制值,请考虑以下代码:

    s = 64
    s = int(str(s), 16)
    

    如果你想要其他东西,请说明是什么,并注意你可以尝试通过 hex()、int() 和 str() 的组合来实现它

    【讨论】:

    • 嗨。我已经尝试过了,它有效。但是当我得到一个值 s=B0 时,它会显示一个错误。
    • 正如我的回答中提到的,64 是一个整数,当你提供s=B0 它不再是一个整数,事实上你不能只在python 中写s = B0,它将导致 NameError。请更具体地说明您如何声明值,以及您希望结果是什么。再一次,它只是 hex() str() 和 int() 的某种组合。如果您给我更多详细信息,我可以帮助您获得答案,或者您可以自己玩,Mabye 阅读我提供的链接中的文档并了解这些功能。
    • 你是对的。情况是我正在从系统传输的较长变量中提取值。例如62 1A 14 B0 00 00 00 00。我得到这个值作为系统的响应,我想从中提取 B0 并将其作为整数 (176) 处理。
    • 这个输入是什么类型的?一个字符串?如果答案是肯定的,那么只需s = (s, 16) 将导致s => 176
    • 上述语句无效。但我尝试了 s=int (s,16),它成功了,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 2012-05-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 2018-07-24
    相关资源
    最近更新 更多