6

私は計算します

c = a 'OR' b // bitwise OR operation here

の値のみが与えられ、元の値cbどのように計算できますaか?

4

6 に答える 6

24

不可能だよ。

私の要点を示す簡単なケース (a、b、および c がすべて 1 ビットであると仮定):

「b」が 1 の場合、「c」は常に 1 であり、「a」の値を決定することはできません。

于 2009-07-08T06:58:39.073 に答える
4

確実に戻ることはできません。たとえば、a = 0010 および b = 0011。a OR b = 0011。a が異なっていても同じ結果になります (たとえば、0001 または 0011)。

于 2009-07-08T06:59:13.910 に答える
3

OR 1 は常に 1 で、OR 0 は常に a であるため、b が 0 の場合にのみ a の値を見つけることができます。

編集: AND と OR は不可逆操作です (常に元に戻すことはできません)。一方、XOR と NOT は無損失/可逆です。

于 2009-07-08T07:01:14.247 に答える
2

or 操作は元に戻せません。c に同じ値を与える a には多くの異なる値があります。

b の補数を使用して and 演算を実行することにより、a の可能な値を 1 つ取得できます。

a = c & ~b
于 2009-07-08T07:02:03.263 に答える
1

それは可能ではありません。「a」が何であるかを決定する方法はありません

于 2009-07-08T06:58:40.633 に答える
1

数学的な観点からは、C と B から A を推測することは不可能です。C の n 番目のビットの値が 1 で、B の値が 1 の場合、A の n 番目のビットが 0 と 1 のどちらに等しいかわかりません。

于 2009-07-08T07:01:05.217 に答える