Comment by extrano84

9 hours ago

I checked this in an online C-compiler and it is not equivalent to x==1 | x==2.

this statement is equivalent to x==2 | x==3.

For example, x=3, 3/2 = 1 then 1-1 = 0 so that !(0) is 1 or true. Also for x=1, 1/2 = 0 then 0-1 = -1 and !(-1) = 0 or false.

I agree with your point in general though about size constraints.