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)