in reply to Re^6: converting large hex values
in thread converting large hex values
I must be missing something
Yes, cause they're equivalent. What makes you think it works with -Mbignum=a,50? (I was wonder wondering why you'd need to specify the accuracy in the first place since I thought it defaulted to infinite accuracy.)
$ perl -Mbignum=a,50 -wle'print hex("0xbe91cfb586466d02")' Integer overflow in hexadecimal number at -e line 1. Hexadecimal number > 0xffffffff non-portable at -e line 1. 1.37319851173781e+19
bigint doesn't affect strings, so it never comes into play in the above. Even if it did, hex is not something that can be overloaded, so it would fail anyway even if the string was converted into a BigInt.
$ perl -MMath::BigInt -wle'print hex(Math::BigInt->new("0xbe91cfb58646 +6d02"))' Integer overflow in hexadecimal number at -e line 1. Hexadecimal number > 0xffffffff non-portable at -e line 1. 9.18481776382103e+22
If you use the string as the second operand of something whose first operand is a Math::BigInt, it'll work.
The above is short for$ perl -Mbigint -wle'print 0+"0xbe91cfb586466d02"' 13731985117378145538
which implicitly does$ perl -MMath::BigInt -wle'print Math::BigInt->new(0)+"0xbe91cfb586466 +d02"' 13731985117378145538
so you could also use$ perl -MMath::BigInt -wle'print Math::BigInt->new(0)->badd(Math::BigI +nt->new("0xbe91cfb586466d02"))' 13731985117378145538
$ perl -MMath::BigInt -wle'print Math::BigInt->new("0xbe91cfb586466d02 +")' 13731985117378145538
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^8: converting large hex values
by Spooky (Beadle) on Jul 30, 2009 at 17:16 UTC | |
by ikegami (Patriarch) on Jul 30, 2009 at 17:27 UTC | |
by Spooky (Beadle) on Jul 31, 2009 at 10:09 UTC |