http://qs321.pair.com?node_id=798603


in reply to long integer to hexadecimal conversion

bigint / Math::BigInt are core modules, and do what you want.

  • Comment on Re: long integer to hexadecimal conversion

Replies are listed 'Best First'.
Re^2: long integer to hexadecimal conversion
by kikuchiyo (Hermit) on Oct 01, 2009 at 10:58 UTC
    I wanted to say the same thing, but I'm late, I guess:

    use bigint; my $n = 123456789123456; my ($h, $d); while ($n > 0) { $d = $n % 16; $n /= 16; $h .= sprintf "%x",$d; } print scalar reverse $h;
        True.

        You'd only need my algorithm if you wanted to express the integer in a base other than 16 (or 8).

        use bigint; my @digits=map chr,(0x30..0x39,0x41..0x5d); my $base = 22; my $n = 123456789123456; my $h; while($n > 0){ $h .= $digits[ $n % $base ]; $n /= $base; } print scalar reverse $h';
        Result is 4E5G93GHBE8.
        Super Duper Cool Thanks Joost
      couldn't have been easier than this. Thanks kikuchiyo, you saved my day