you made some wrong computations:
2^32 - 1 = 4294967295
and
2^64 - 1 = 18446744073709551615
you computed 2^31 - 1 and 2^63 -1 instead.
- Right, it was a mistake. The value is actually LONG_MAX not MAX_ULONG -- I have fixed this in the page title, in the page itself and in all the links to it. Thanks for noticing that --Kir 13:57, 25 January 2011 (UTC)