我计算
c = a 'OR' b // bitwise OR operation here
现在只给出c
和b
的值,如何计算a
的原始值?
答案 0 :(得分:22)
这是不可能的。
一个简单的案例来证明我的观点(假设a,b和c都是1位):
如果'b'为1,'c'将始终为1,则无法确定'a'的值。
答案 1 :(得分:4)
你无法可靠地回去。例如,a = 0010且b = 0011.一个OR b = 0011.如果a不同(例如0001或0011),则结果相同。
答案 2 :(得分:3)
由于OR 1始终为1且OR 0始终为a,因此只能找到a的值,如果b为0。
编辑:AND和OR是有损操作(不能总是反转)。而XOR和NOT是无损/可逆的。
答案 3 :(得分:2)
这是不可能的,或者操作是不可逆的。有许多不同的a值给c提供相同的值。
你可以通过使用b的补码进行操作来获得a的一个可能值。
a = c & ~b
答案 4 :(得分:1)
那是不可能的。没有办法确定'a'将是什么
答案 5 :(得分:1)
从数学的角度来看,从C和B中推断出A是不可能的。 如果,对于第n位,您在C和B中的值为1,则无法知道A中的第n位是否等于0或1