With my little knowledge C (and C++) variables has ability to flip over when they go out of range.
integer variable can have range 0-65535
when it gets assigned to 65536(out of range) it flips to 1
and when some1 assings it value of -1 it's actually 65534
same with -123 -> 65536-123=65413
999999999 -> mod(99999999,65536) = 51711
well, just ask from someone who is native <language you know best> speaker...