检查一个整数的位是否包含在另一个整数中
Check if bits of an integers are contained in another one
这是一个我找不到答案的问题。
这是针对 python 但它可以适用于其他语言。
假设我有这些二进制表示的整数
a = 000101
b1 = 001111
b2 = 001110
我想要一个检查,检查 a 中设置的位是否也都在 b 中设置
例如,a 和 b1 就是这种情况。但 a 和 b2 不是这样,因为最后一位在 a 中设置而不在 b2 中设置。
我想这可以通过一位一位地检查所有位来完成,但我假设当我的整数是 32 位时,它可以在更少的操作中使用一个技巧
bitwise and 操作满足您的需求:
a = 0b000101
b1 = 0b001111
b2 = 0b001110
if a & b1 == a: print("a is in b1")
if a & b2 == a: print("a is in b2")
这是一个我找不到答案的问题。 这是针对 python 但它可以适用于其他语言。 假设我有这些二进制表示的整数
a = 000101
b1 = 001111
b2 = 001110
我想要一个检查,检查 a 中设置的位是否也都在 b 中设置 例如,a 和 b1 就是这种情况。但 a 和 b2 不是这样,因为最后一位在 a 中设置而不在 b2 中设置。 我想这可以通过一位一位地检查所有位来完成,但我假设当我的整数是 32 位时,它可以在更少的操作中使用一个技巧
bitwise and 操作满足您的需求:
a = 0b000101
b1 = 0b001111
b2 = 0b001110
if a & b1 == a: print("a is in b1")
if a & b2 == a: print("a is in b2")