开发者

What is the reverse operation of bitwise AND?

开发者 https://www.devze.com 2023-02-17 01:48 出处:网络
How can I get a from b and c? What would be the reverse operation? Here is the code: classs { public s开发者_如何转开发tatic void main(String ar[])

How can I get a from b and c? What would be the reverse operation?

Here is the code:

class  s
{
    public s开发者_如何转开发tatic void main(String ar[])
    {

        int a = 20;

        int b = 5;

        int c = 0;

        c = (a & b) ;

        System.out.println(c);

        int d = (c & b);

        System.out.println(d);
    }
}


You can't. If a bit in c is 0 and the corresponding bit in b is 0, it's impossible to know whether the corresponding bit in a was 0 or 1. By a similar argument, bitwise OR (the | operator) is also irreversible. On the other hand, bitwise XOR (the ^ operator) is reversible.


If you look at the truth table of the and logical operation, you can see that it contains three falses and one true. Therefore it can't be reversed.

Only equals and xor have balanced truth tables, and they are the two reversible boolean operators.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号