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);
}
}
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.