這裏是我做了什麼:如何反轉按位或操作?
93 | 199
返回
223
我明白,這是因爲0b1011101 | 0b11000111
是0b11011111
然而,假設我想要做反向操作。如何從0b11000111
到0b11011111
之間的位運算得到0b1011101
?
這裏是我做了什麼:如何反轉按位或操作?
93 | 199
返回
223
我明白,這是因爲0b1011101 | 0b11000111
是0b11011111
然而,假設我想要做反向操作。如何從0b11000111
到0b11011111
之間的位運算得到0b1011101
?
在一般情況下,您無法得到明確的答案。如果C=A|B
,那麼無論你有在C 1和所述的A 1,B 的相應位可能是任一 0或1
在您的例子,93 | 199 = 223,但92 | 199也是223.所以,給定223和199,沒有單個答案(實際上,在這個例子中有32個可能的答案)。
正如here所指出的,OR和AND都是破壞性的操作。反向OR操作是一種有損操作,正如'jez'所提到的,可以有多個答案。 因此,它是不可能
只有反向操作可能是XOR,因爲它是無損。
你不能...... – 2014-11-04 03:07:59
你可以產生所有可能的答案,雖然它們可能會成倍增加(3的數量爲1的數) – harold 2014-11-04 07:58:00