Hey! I was looking at this code at http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html
I noticed that in some situations they used hex numbers, like i
its a bit mask. Hex values make it easy to see the underlying binary representation. n & 0xffff0000
returns the top 16 bits of n. 0xffff0000
means "16 1s and 16 0s in binary"
0x80
means "1000000", so you start with "00000001" and continue shifting that bit over to the left "0000010", "0000100", etc until "1000000"