我计算
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 操作是不可逆的。有许多不同的 a 值可以为 c 提供相同的值。
您可以通过对 b 的补码进行 an and 运算来获得 a 的一个可能值。
a = c & ~b
那是不可能的。没有办法确定“a”是什么
从数学的角度来看,不可能从 C 和 B 中推导出 A。如果对于第 n 位,您在 C 中的值为 1,而在 B 中,您不知道 A 中的第 n 位是否等于 0 或 1