python中二进制格式的位操作
我的程序有两个变量:python中二进制格式的位操作,python,bitwise-operators,python-3.6,Python,Bitwise Operators,Python 3.6,我的程序有两个变量:IP和MASK。这些变量包含二进制格式的数字,例如:IP=“11100001”和MASK=“11000000” 我正在执行一个和操作,如下所示: result=IP&MASK。 这应该给出:11000000,但返回10573888。 如何进行和运算并将数字保留为十进制 我环顾了stackoverflow.com,但没有发现任何类似的情况,我遇到的唯一一件事是手动执行执行此操作的“算法”。您正在以十进制输入数字。位模式不是您所期望的: >>> bin(1110
IP
和MASK
。这些变量包含二进制格式的数字,例如:IP=“11100001”
和MASK=“11000000”
我正在执行一个和操作,如下所示:
result=IP&MASK
。
这应该给出:11000000
,但返回10573888
。
如何进行和
运算并将数字保留为十进制
我环顾了stackoverflow.com,但没有发现任何类似的情况,我遇到的唯一一件事是手动执行执行此操作的“算法”。您正在以十进制输入数字。位模式不是您所期望的:
>>> bin(11100001)
'0b101010010101111101100001'
>>> bin(11000000)
'0b101001111101100011000000'
>>> bin(11000000 & 11100001)
'0b101000010101100001000000'
>>> bin(10573888)
'0b101000010101100001000000'
要使用二进制数,请使用0b
前缀:
>>> bin(0b11000000 & 0b11100001)
'0b11000000'
返回0b11000000
用0b
预固定是一种常用的方法,表示数字是二进制格式的。类似地,0x
通常表示十六进制数。谢谢,这个解释澄清了很多事情。我就是想要这个。非常感谢你的回答。
IP = 0b11100001
MASK = 0b11000000
Result = bin(IP and MASK)
print(Result)