.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\" ========================================================================
.de Sh \" Subsection heading
.de Sp \" Vertical space (when we can't use .PP)
.de Vb \" Begin verbatim text
.de Ve \" End verbatim text
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
. tm Index:\\$1\t\\n%\t"\\$2"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. \" simple accents for nroff and troff
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
.\" ========================================================================
.IX Title "BigIntSupport 3"
.TH BigIntSupport 3 "2002-07-24" "perl v5.8.0" "User Contributed Perl Documentation"
BigIntSupport \- Perl extension for interfacing between Math::BigInt values and text strings.
\& # Create Math::BigInt from an arbitrary-sized hex number
\& my $bigint1 = hex2bigint("0xdeadbeefcafebabe01234567");
\& my $bigint2 = hex2bigint("0xffffffff");
\& my $string = bigint2hex($bigint1);
\& print "Result is 0x$string\en";
This provides some interface functions for the Math::BigInt library,
which is part of the perl standard libary. Basically, Math::BigInt is
a module for arbitrary-sized integers. It overloads all the standard
math operators for use with Math::BigInt objects, but it does not
overload either the \fIhex()\fR function or sprintf \*(L"%x\*(R", so it is difficult
to use Math::BigInt objects for large hex numbers. This module is a
solution to that problem.
The following functions are exported:
.IP "hex2bigint($hex_string)" 4
.IX Item "hex2bigint($hex_string)"
Interprets \f(CW$hex_string\fR as a hex number (whether or not a leading 0x is
present). Returns a Math::BigInt object representing the number. To
convert decimal numbers to Math::BigInt objects, use
Math::BigInt\->new($decimal_string).
.IP "bigint2hex($bigint)" 4
.IX Item "bigint2hex($bigint)"
Formats the given Math::BigInt object as a hexidecimal string and
returns it. The string has no leading zeros or 0x.
.ie n .IP "bigint_sprintf($bigint, $format)" 4
.el .IP "bigint_sprintf($bigint, \f(CW$format\fR)" 4
.IX Item "bigint_sprintf($bigint, $format)"
Takes a Math::BigInt and a printf-style format string and returns a
string with the appropriately-formatted string. The format string can
contain only \f(CW%x\fR or \f(CW%d\fR, and may optionally include a width
specification, which may include a leading zero. In other words,
\&\*(L"%016x\*(R" is legal but \*(L"The answer is \f(CW%d\fR\*(R" is not. A leading \*(L"%\*(R" is
Jeff Gibson, jgibson@afara.com
\&\fIMath::BigInt\fR\|(3), \fIperl\fR\|(1).