I thought bitwise-AND operates on each bit, not just bit 0. I thought it operates on all 32 bits of an integer in 32-bit system and returns a new value where all on bits between the two numbers remain on, otherwise off. Like in the following:
1 2 3
11001110
& 10011000
= 10001000
As you see in above example, bit 0 is not set, but it still returns a value greater than 0, which is 136 (10001000) in this case. Am I missing something?