私は計算します
c = a 'OR' b // bitwise OR operation here
の値のみが与えられ、元の値c
をb
どのように計算できますa
か?
私は計算します
c = a 'OR' b // bitwise OR operation here
の値のみが与えられ、元の値c
をb
どのように計算できますa
か?
不可能だよ。
私の要点を示す簡単なケース (a、b、および c がすべて 1 ビットであると仮定):
「b」が 1 の場合、「c」は常に 1 であり、「a」の値を決定することはできません。
確実に戻ることはできません。たとえば、a = 0010 および b = 0011。a OR b = 0011。a が異なっていても同じ結果になります (たとえば、0001 または 0011)。
OR 1 は常に 1 で、OR 0 は常に a であるため、b が 0 の場合にのみ a の値を見つけることができます。
編集: AND と OR は不可逆操作です (常に元に戻すことはできません)。一方、XOR と NOT は無損失/可逆です。
or 操作は元に戻せません。c に同じ値を与える a には多くの異なる値があります。
b の補数を使用して and 演算を実行することにより、a の可能な値を 1 つ取得できます。
a = c & ~b
それは可能ではありません。「a」が何であるかを決定する方法はありません
数学的な観点からは、C と B から A を推測することは不可能です。C の n 番目のビットの値が 1 で、B の値が 1 の場合、A の n 番目のビットが 0 と 1 のどちらに等しいかわかりません。