So, if no is (in binary) 10111001 (for instance), then i & 1 would be 10111001 & 00000001, which is 00000001, or 1. The last digit is the only one that is 1 in both numbers.

So what that's doing is testing if the last binary digit is 1 or not. In this case, it's equivalent to testing whether the number is even or not, and so you could do the equivalent as (no % 2 == 1).