【问题标题】:Python compare integer number with hexadecimal and binary numbersPython将整数与十六进制和二进制数进行比较
【发布时间】:2017-01-28 11:11:05
【问题描述】:

如何将int 数字与十六进制和二进制数字进行比较?

除了我在下面找到的以外,还有其他可用的方法吗:

if b'\xFF'[0] == 255:
    print("yes")

if bin(b'\xFF') == bin(255)
    print("yes")

上面正在进行某种调用和转换。如果无法使用任何输入格式(二进制、十六进制、十进制)定义数字并且对于编译器来说仍然是相同的数字,我会感到惊讶。

到目前为止,我所知道的几乎所有编译器都可以用不同的符号表示一个数字,但在 Python 中却没有,比如这个:

if 255 == 0xFF
    print("yes")

【问题讨论】:

    标签: python hex


    【解决方案1】:

    这是有效的表达方式。您只是在 if 语句的末尾错过了“:”

    if 255 == 0xFF:
     print("yes")
    

    【讨论】:

      【解决方案2】:

      int - hex(整数 - 十六进制)比较

      您可以使用hex()int转换为hex

      >>> hex(255)
      '0xff'
      

      hex 值与int 进行比较的示例如下:

      >>> hex(255) == '0xff'
      True
      

      或者,使用 int()base 16hex 转换为 int

      >>> int('0xff', 16)
      255
      

      现在这个int可以和hex比较为:

      >>> int('0xff', 16) == 255
      True
      

      另外,不带引号的十六进制数(引号表示str)会被 Python 解释器自动转换为int。例如:

      >>> 0xff
      255
      

      因此,您也可以直接比较:

      >>> 255 == 0xff  # `0x` at the start denotes hexa-decimal number
      True
      

      int - bin(整数 - 二进制)比较

      您可以使用bin() int 值转换为二进制

      >>> bin(5)
      '0b101'
      

      这是比较 intbin 值的示例:

      >>> bin(5) == '0b101'
      True
      

      或者,使用基数为 2 的 int()bin 转换为 int

      >>> int('0b101', 2)
      5
      

      使用这个,二进制与int的比较可以如下完成:

      >>> int('0b101', 2) == 5
      True
      

      Python 解释器将无引号的二进制数转换为 int

      >>> 0b101   # `0b` at the start denotes binary number
      5 
      

      因此,您可以将 int 与 binary 进行比较:

      >>> 5 == 0b101
      True
      

      【讨论】:

        猜你喜欢
        • 2014-08-12
        • 1970-01-01
        • 2021-08-26
        • 2011-10-16
        • 1970-01-01
        • 2010-12-25
        • 2019-07-24
        • 2014-10-30
        • 1970-01-01
        相关资源
        最近更新 更多