What is the reverse operation of bitwise AND?

2019-08-05 07:19发布

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

Here is the code:

class  s
{
    public static 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);
    }
}

标签: java jmf j#
2条回答
仙女界的扛把子
2楼-- · 2019-08-05 07:30

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.

查看更多
3楼-- · 2019-08-05 07:32

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.

查看更多
登录 后发表回答