How to reverse bitwise AND (&) in C?
For example I have an operation in C like this:
((unsigned int)ptr & 0xff000000))
The
You can't do that because you have thrown away information (i.e. bits) - you can't get information back from nowhere.
Note that both AND
(&
) and OR
(|
) are destructive. The only Boolean operations that are reversible are XOR
(^
) and NOT (~
).
Impossible. Bitwise & of 0xff000000 is a lossy operation. You lose the lower 24-bits permanently.
You can only reverse XOR, as it's non-destructive.
Both OR and AND are destructive.
Bitwise &
can't be reversed:
0 & 1 = 0
0 & 0 = 0