Edit (21.10.2010): answer here
I wonder how 64 bit types are implemented on 32 bit machines (for instance __int64). When I have two 64-bit ints A and B, what does A & B do (bitwise AND). Does it break them to 32-bit parts, ANDs them separately and glues back ? So how does shifting work ?