Iva*_*nov 6 c# bitwise-operators
我需要做一个反向计算,它包括按位AND运算,我该怎么做?
我尝试了异或,但它没有帮助.
int i = 254 & 2;
Console.Write("254 & 2 ={0}", i + "\n");
Console.Write("{0} ^ 2 ={1}",i, (i ^ 2) + "\n");
Run Code Online (Sandbox Code Playgroud)
不行.我该如何计算?
Sam*_*uel 28
鉴于i,你无法回头254.通过&它你已经破坏了第二位没有存储的数据.
1111 1110
&0000 0010
----------
0000 0010
Run Code Online (Sandbox Code Playgroud)
你如何恢复6个丢失的位?因为x & 2 == 2,你几乎可以放任何东西x,这是真的.
0010 1010 // = 42
&0000 0010
----------
0000 0010
Run Code Online (Sandbox Code Playgroud)
是x254还是42?你不能说.
Ada*_*vis 22
从技术上讲,与AND相反的是NAND:
〜(254&2)
注意,〜是补码运算符,并且按位NOT(将每个位切换到相反的位).
但你到底想要什么呢?你想达到什么目的?
如果你试图撤消计算,你不能 - 没有反函数,使得inverseand(和(x,y))将返回x或y,即使给出其中一个反函数.
-亚当
| 归档时间: |
|
| 查看次数: |
15266 次 |
| 最近记录: |