如何将int
数字与十六进制和二进制数进行比较?
除了我在下面找到的还有其他方法吗?
if b'\xFF'[0] == 255:
print("yes")
if bin(b'\xFF') == bin(255)
print("yes")
以上是进行某种调用和转换。如果无法使用任何输入格式(二进制,十六进制,十进制)定义数字并且编译器的数字仍然相同,我会感到惊讶。
到目前为止,我所知道的几乎所有编译器都可以用不同的符号表示一个数字,但在Python中没有办法,比如这个:
if 255 == 0xFF
print("yes")
答案 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
现在可以将此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'
以下是将int
与bin
值进行比较的示例:
>>> 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")