in reply to Re^2: String to Hex
in thread String to Hex

I would $num >>= 16;

Both methods have problems on 32-bit systems.

GrandFather's produces the correct result and warnings, but yours gives the wrong result?

print 24600988483 / 2**32;; 5.72786398301832 print 24600988483 / 0x100000000;; Integer overflow in hexadecimal number at (eval 24) line 1 Hexadecimal number > 0xffffffff non-portable at (eval 24) line 1 5.72786398301832 print 24600988483 >> 16;; 65535

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^4: String to Hex
by GrandFather (Saint) on May 22, 2007 at 23:57 UTC

    Warnings? With AS Perl 5.8.7 I see no warnings with either the code I posted or with the (corrected) $num >>= 32; variant suggested by blazar. You did use bigint; didn't you?


    DWIM is Perl's answer to Gödel
      You did use bigint; didn't you?

      Rhetorical I assume, but I'll answer it anyway. No. I missed that slightly significant detail :)

      Annoyingly, I did look for use Math::BigInt;, but completely missed the presence of the pragma variant!


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.