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);
}
}
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
andxor
have balanced truth tables, and they are the two reversible boolean operators.You can't. If a bit in
c
is 0 and the corresponding bit inb
is 0, it's impossible to know whether the corresponding bit ina
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.