NAME
Math::Int2Base - Perl extension for converting decimal (base-10) integers into another number base from base-2 to base-62, and back to decimal.
SYNOPSIS
use Math::Int2Base qw( int2base base2int base_chars );
my $base = 16; # i.e., hexidecimal
my $hex = int2base( 255, $base ); # FF
my $dec = base2int( $hex, $base ); # 255
my $base62 = int2base( 10**100, 62 ); # QCyvrY2M...(55 digits)
my $decnum = base2int( $base62, 62 ); # 1e+100 (googol)
my $sixdig = int2base( 100, 36, 6 ); # 00002S
my $decno = base2int( $sixdig, 36 ); # 100, i.e., leading zeros no problem
my $chars = base_chars( 24 ); # 0123...KLMN
my $regex = qr/^[$chars]$/; # used as character class
DESCRIPTION
Math::Int2Base provides int2base( $int, $base, $minlen )
for converting from decimal to another number base, base2int( $num, $base )
for converting from another base to decimal, and base_chars( $base )
for retrieving the string of characters used to represent digits in a number base.
This module only works with positive integers. Fractions are silently truncated to integers.
CONSTRAINTS
Only (so far) supports bases from 2 to 62
Does not (yet) support bases that skip digits (e.g., base-24 skips
I
andO
, Math::Int2Base doesn't)Only supports positive integers.
Does not support flexible case letters, e.g., in hexidecimal, F == f. In Math::Int2Base, f is not a hex digit, and A/base-16 == A/base=36 == A/base-62.
SEE ALSO
http://en.wikipedia.org/wiki/Category:Positional_numeral_systems Math::BaseCnv Math::BaseCalc
Code based on newgroup discussion http://groups.google.com/group/comp.lang.perl.misc/browse_thread/thread/3f3b416e3a79fd2/d2f62e10c837e782 particularly that of Dr. Ruud. Errors are my own.
AUTHOR
Brad Baxter, <bmb@libs.uga.edu>
COPYRIGHT AND LICENSE
Copyright (C) 2008 by Brad Baxter
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.