This week's book giveaway is in the OCAJP forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide 1Z0-808 and have Jeanne Boyarsky & Scott Selikoff on-line! See this thread for details.

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).

Don't get me started about those stupid light bulbs.

subject: what does bit wise operator '&' does here ?