2017-04-20 93 views
0

说我有以下位运算:如何检查按位OR是否包含特定值?

1 OR 12 OR 7 => 15 

现在,有没有什么办法让我可以检查一个特定的号码是一起进行或运算值的一部分?

例如,

7 <Some Operation> 15 = true 

4 <Some Operation> 15 = false 
+2

如果一个特定的数字是其中一个数字“或”,则无法检查。例如,'10 | 4 => 14'和'10 | 6 => 14'。是4个数字之一吗?然而,9在14中并不是OR'ed。如果_x&z!= x_,数字_x_ definetely在_z_中不是OR'ed。 –

回答

0

你可以只检查,如果一个特定的值Val潜在的Or操作导致的结果Res你的部分通过测试

(Val And Res) = Val 

如果属实,情况可能是这样。

为了您7 <some operation> 15例如,你会发现:

(0111b And 1111b) = 0111b (True) 

,并为您的4 <some operation> 15例如:

(0100b And 1111b) = 0100b (True as well!) 

第二个例子也告诉你,那4可能已经介入,但不是,那它是确定无疑的。

相关问题