I had a controversy about what compilers \"think\" about this:
a = 8; b = !!a;
So, is b == 0x01 ? Is TRUE always
b == 0x01
TRUE
Yes, b == 1. The result of any boolean operator is always 0 or 1. You can do better though...
b == 1
I want to extract only 0x00 if (a == 0) and 0x01 if (a > 0)
b = a > 0; most accurately reflect your rule.
b = a > 0;