Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Math::BaseCalc(3)     User Contributed Perl Documentation    Math::BaseCalc(3)

       Math::BaseCalc -	Convert	numbers	between	various	bases

       version 1.019

	 use Math::BaseCalc;

	 my $calc = new	Math::BaseCalc(digits => [0,1]); #Binary
	 my $bin_string	= $calc->to_base(465); # Convert 465 to	binary

	 $calc->digits('oct'); # Octal
	 my $number = $calc->from_base('1574');	# Convert octal	1574 to	decimal

       This module facilitates the conversion of numbers between various
       number bases.  You may define your own digit sets, or use any of
       several predefined digit	sets.

       The to_base() and from_base() methods convert between Perl numbers and
       strings which represent these numbers in	other bases.  For instance, if
       you're using the	binary digit set [0,1],	$calc->to_base(5) will return
       the string "101".  $calc->from_base("101") will return the number 5.

       To convert between, say,	base 7 and base	36, use	the 2-step process of
       first converting	to a Perl number, then to the desired base for the

	$calc7	= new Math::BaseCalc(digits=>[0..6]);
	$calc36	= new Math::BaseCalc(digits=>[0..9,'a'..'z']);

	$in_base_36 = $calc36->to_base(	$calc7->from_base('3506') );

       If you just need	to handle regular octal	& hexdecimal strings, you
       probably	don't need this	module.	 See the sprintf(), oct(), and hex()
       Perl functions.

       o   new Math::BaseCalc

       o   new Math::BaseCalc(digits=>...)

	   Create a new	base calculator.  You may specify the digit set	to
	   use,	by either giving the digits in a list reference	(in increasing
	   order, with the 'zero' character first in the list) or by
	   specifying the name of one of the predefined	digit sets (see	the
	   digit() method below).

	   If your digit set includes the character "-", then a	dash at	the
	   beginning of	a number will no longer	signify	a negative number.

       o   $calc->to_base(NUMBER)

	   Converts a number to	a string representing that number in the
	   associated base.

	   If "NUMBER" is a "Math::BigInt" object, "to_base()" will still work
	   fine	and give you an	exact result string.

       o   $calc->from_base(STRING)

	   Converts a string representing a number in the associated base to a
	   Perl	integer.  The behavior when fed	strings	with characters	not in
	   $calc's digit set is	currently undefined.

	   If "STRING" converts	to a number too	large for perl's integer
	   representation, beware that the result may be auto-converted	to a
	   floating-point representation and thus only be an approximation.

       o   $calc->digits

       o   $calc->digits(...)

	   Get/set the current digit set of the	calculator.  With no
	   arguments, simply returns a list of the characters that make	up the
	   current digit set.  To change the current digit set,	pass a list
	   reference containing	the new	digits,	or the name of a predefined
	   digit set.  Currently the predefined	digit sets are:

		  bin => [0,1],
		  hex => [0..9,'a'..'f'],
		  HEX => [0..9,'A'..'F'],
		  oct => [0..7],
		  64  => ['A'..'Z','a'..'z',0..9,'+','/'],
		  62  => [0..9,'a'..'z','A'..'Z'],

	     $calc->digits([qw(w a l d o)]);

	   If any of your "digits" has more than one character,	the behavior
	   is currently	undefined.

       Ken Williams,

       This is free software in	the colloquial nice-guy	sense of the word.
       Copyright (c) 1999, Ken Williams.  You may redistribute and/or modify
       it under	the same terms as Perl itself.


perl v5.32.1			  2017-06-08		     Math::BaseCalc(3)


Want to link to this manual page? Use this URL:

home | help