首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么进行二进制运算

2012-12-18 
如何进行二进制运算?假设现在有两个变量,分别是A“10100101”和B“00010100”,那如果这两个值进行“OR”运算的

如何进行二进制运算?
假设现在有两个变量,分别是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的。

[其他解释]

如果你希望一种可逆的二元位运算,那就只能是异或。任何一个操作数与结果异或,将得到另一个操作数。

[其他解释]
不太好判断你想要的是哪个值啊!
[其他解释]

引用:
如果你希望一种可逆的二元位运算,那就只能是异或。任何一个操作数与结果异或,将得到另一个操作数。


那我上面所提及的,能换成异或运算吗?如何转?
[其他解释]
引用:
这不是减法,c-b就能等于a的。


所以才是我觉得头疼的地方。

热点排行