8

これが私がやったことです:

93 | 199

返す

223

私はこれがだからであることを理解してい0b1011101 | 0b11000111ます0b11011111

しかし、逆の操作をしたいとします。と0b1011101の間のビット単位の操作から取得するにはどうすればよいですか?0b110001110b11011111

4

3 に答える 3

19

一般的なケースでは、明確な答えを得ることができません。の場合C=A|B、C に 1 があり、A に 1 がある場合、B の対応するビットは0 または 1のいずれかである可能性があります。

あなたの例では、93|199=223 ですが、92|199 も 223 です。したがって、223 と 199 を考えると、単一の答えはありません (実際、この例では 32 の可能な答えがあります)。

于 2014-11-04T03:06:16.310 に答える
2

hereで指摘されているように、 OR と AND はどちらも破壊的な操作です。OR 操作を逆にすることは損失の多い操作であり、「jez」で述べたように、複数の答えを持つことができます。だから、それは不可能です

XOR は非破壊であるため、逆の操作のみが可能です。

于 2017-01-02T09:20:53.210 に答える