I'm not really sure on the order of precedence in that situation but there really is only two possibilities
!(var&1) and (!var)&1
So given var == 4 using eight bits:
Code:
var == 00000100
1 == 00000001
!var == 11111011
(var & 1) == 00000000
!(var & 1) == 11111111
(!var & 1) == 00000001
Well both come up with a true statement but lets check on a odd number (var == 3)
Code:
var == 00000011
1 == 00000001
!var == 11111100
(var & 1) == 00000001
!(var & 1) == 11111110
(!var & 1) == 00000000
Well the last one is the only one that came up with a false statement. Though as always I'd avoid bit-wise tricks whenever possible