Python 检查一个整数的位是否包含在另一个整数中

Python 检查一个整数的位是否包含在另一个整数中,python,bit-manipulation,Python,Bit Manipulation,有一个问题我找不到答案。 这适用于python,但也可以应用于其他语言。 假设我有这些二进制表示的整数 a = 000101 b1 = 001111 b2 = 001110 我需要一个检查,检查a中设置的位是否也都设置在b中 例如,a和b1就是这种情况。但a和b2的情况并非如此,因为最后一位是在a中设置的,而不是在b2中设置的。 我想这可以通过逐个检查所有位来实现,但我假设当我的整数为32位时,在更少的操作中有一个技巧。该操作满足您的需要: a = 0b000101 b1 = 0b00111

有一个问题我找不到答案。 这适用于python,但也可以应用于其他语言。 假设我有这些二进制表示的整数

a  = 000101
b1 = 001111
b2 = 001110
我需要一个检查,检查a中设置的位是否也都设置在b中 例如,a和b1就是这种情况。但a和b2的情况并非如此,因为最后一位是在a中设置的,而不是在b2中设置的。 我想这可以通过逐个检查所有位来实现,但我假设当我的整数为32位时,在更少的操作中有一个技巧。该操作满足您的需要:

a = 0b000101
b1 = 0b001111
b2 = 0b001110
if a & b1 == a: print("a is in b1")
if a & b2 == a: print("a is in b2")

按位and运算
&
?可能使用按位and,即
如果a&v==a
,则v具有a的所有位集。@ThomasWeller eh我减小了它,因为它是对称的,但确实应该这样做。这回答了你的问题吗?