これが私がやったことです:
93 | 199
返す
223
私はこれがだからであることを理解してい0b1011101 | 0b11000111ます0b11011111
しかし、逆の操作をしたいとします。と0b1011101の間のビット単位の操作から取得するにはどうすればよいですか?0b110001110b11011111
これが私がやったことです:
93 | 199
返す
223
私はこれがだからであることを理解してい0b1011101 | 0b11000111ます0b11011111
しかし、逆の操作をしたいとします。と0b1011101の間のビット単位の操作から取得するにはどうすればよいですか?0b110001110b11011111
一般的なケースでは、明確な答えを得ることができません。の場合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 は非破壊であるため、逆の操作のみが可能です。