如何进行二进制运算?
假设现在有两个变量,分别是A=“10100101”和B=“00010100”,那如果这两个值进行“OR”运算的话,则会得到结果C=“10110101”,现在的问题是,我知道结果C的变量和其中一个变量B,如何返回得到变量A呢?谢谢!
[最优解释]
or 运算为不可逆,因此无法往回推算出原来的数据
xor为可逆运算
a xor b=c
===>c xor a=b,c xor b=a
[其他解释]
或运算不是可逆运算。
因为 0 Or 1 = 1; 1 Or 1 = 1。也就是说,对于确定的输出,输入不是唯一的。
已知 xxxxxxxx Or 00010100 = 10110101
可知 xxxxxxxx = 101x0x01,即可能的解是:
10100001
10100101
10110001
10110101
无法确定的位的个数,取决于 B。
[其他解释]
101 or 10 = 111 111 or 10=111
[其他解释]
这个可没有唯一解, 不信你手工计算一下就知道了.
[其他解释]
这不是减法,c-b就能等于a的。
[其他解释]
如果你希望一种可逆的二元位运算,那就只能是异或。任何一个操作数与结果异或,将得到另一个操作数。
[其他解释]
不太好判断你想要的是哪个值啊!
[其他解释]