Are you storing that in an unsigned long? You may want to switch datatypes, perhaps to float/double. That number is the limit of a 64bit unsigned number storage data type, so you have to use something 'bigger' (imprecise types like double, float, etc are your best bet I guess) 0xffffffffffffffff is huge though, what are you doing? lol. But basically, you are reaching architecture and language limitations.
gniripsni ewa si rehte eht morf cisum siht