Python将整数与十六进制和二进制数进行比较

时间:2017-01-28 11:11:06

标签: python hex

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

除了我在下面找到的还有其他方法吗?

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

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

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

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

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

2 个答案:

答案 0 :(得分:4)

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

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

>>> hex(255)
'0xff'

hex值与int进行比较的示例可以完成:

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

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

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

现在可以将此inthex进行比较:

>>> 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

或者,将int()与基数2一起使用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

答案 1 :(得分:3)

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

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