Test win: -6213077893701800743
Test perl: -6213077893701849127
####
my $i = Math::BigInt->new('0');
####
$z = -(0x10000000000000000 - $i) if 0x8000000000000000 & $i;
# line 115
Integer overflow in hexadecimal number at ./testgen line 115 (#1) (W overflow) The hexadecimal, octal or binary number you have specified either as a literal or as an argument to hex() or oct() is too big for your architecture, and has been converted to a floating point number. On a 32-bit architecture the largest hexadecimal, octal or binary number representable without overflow is 0xFFFFFFFF, 037777777777, or 0b11111111111111111111111111111111 respectively. Note that Perl transparently promotes all numbers to a floating point representation internally--subject to loss of precision errors in subsequent operations.