Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Convert big number from decimal to hexadecimal

by ambrus (Abbot)
on Jul 13, 2010 at 13:55 UTC ( #849270=note: print w/ replies, xml ) Need Help??


in reply to Convert big number from decimal to hexadecimal

Wait, there's more, we can also adapt Re: Opposite of strtol? like this.

This goes to the file Tohex.xs:

#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include <gmp.h> MODULE = Math::Tohex PACKAGE = Math::Tohex SV * tohex(num) char *num CODE: char *out; ST(0) = sv_newmortal(); mpz_t big; mpz_init_set_str(big, num, 10); Newx(out, 4 + mpz_sizeinbase(big, 16), char); mpz_get_str(out, 16, big); sv_setpv(ST(0), out); mpz_clear(big); Safefree(out);

This goes to the file lib/Math/Tohex.pm:

package Math::Tohex; require Exporter; require DynaLoader; our $VERSION = "1.00"; our @ISA = (Exporter::, DynaLoader::); our @EXPORT = "tohex"; bootstrap Math::Tohex::; 1; __END__

And this goes to Makefile.PL:

use ExtUtils::MakeMaker; WriteMakefile( NAME => "Math::Tohex", VERSION_FROM => "lib/Math/Tohex.pm", LIBS => ["-lgmp"], );

Now compile:

perl Makefile.PL && make

and run:

perl -wE 'use Math::BigInt; say Math::BigInt->new("4335043554366887798 +866555766")->as_hex;'

and hope for no stupid mistakes leading to memory corruption.


Comment on Re: Convert big number from decimal to hexadecimal
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://849270]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (8)
As of 2015-07-02 22:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (46 votes), past polls