📄 bigint.3
字号:
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05).\".\" Standard preamble:.\" ========================================================================.de Sh \" Subsection heading.br.if t .Sp.ne 5.PP\fB\\$1\fR.PP...de Sp \" Vertical space (when we can't use .PP).if t .sp .5v.if n .sp...de Vb \" Begin verbatim text.ft CW.nf.ne \\$1...de Ve \" End verbatim text.ft R.fi...\" 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. \*(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<>..tr \(*W-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'.ie n \{\. ds -- \(*W-. ds PI pi. 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. ds L" "". ds R" "". ds C` "". ds C' ""'br\}.el\{\. ds -- \|\(em\|. ds PI \(*p. ds L" ``. ds R" '''br\}.\".\" Escape single quotes in literal strings from groff's Unicode transform..ie \n(.g .ds Aq \(aq.el .ds Aq '.\".\" 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..ie \nF \{\. de IX. tm Index:\\$1\t\\n%\t"\\$2"... nr % 0. rr F.\}.el \{\. de IX...\}.\".\" 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.if n \{\. ds #H 0. ds #V .8m. ds #F .3m. ds #[ \f1. ds #] \fP.\}.if t \{\. ds #H ((1u-(\\\\n(.fu%2u))*.13m). ds #V .6m. ds #F 0. ds #[ \&. ds #] \&.\}. \" simple accents for nroff and troff.if n \{\. ds ' \&. ds ` \&. ds ^ \&. ds , \&. ds ~ ~. ds /.\}.if t \{\. 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 \\{\. ds : e. ds 8 ss. ds o a. ds d- d\h'-1'\(ga. ds D- D\h'-1'\(hy. ds th \o'bp'. ds Th \o'LP'. ds ae ae. ds Ae AE.\}.rm #[ #] #H #V #F C.\" ========================================================================.\".IX Title "bigint 3".TH bigint 3 "2007-12-18" "perl v5.10.0" "Perl Programmers Reference Guide".\" For nroff, turn off justification. Always turn off hyphenation; it makes.\" way too many mistakes in technical documents..if n .ad l.nh.SH "NAME"bigint \- Transparent BigInteger support for Perl.SH "SYNOPSIS".IX Header "SYNOPSIS".Vb 1\& use bigint;\&\& $x = 2 + 4.5,"\en"; # BigInt 6\& print 2 ** 512,"\en"; # really is what you think it is\& print inf + 42,"\en"; # inf\& print NaN * 7,"\en"; # NaN\& print hex("0x1234567890123490"),"\en"; # Perl v5.9.4 or later\&\& {\& no bigint;\& print 2 ** 256,"\en"; # a normal Perl scalar now\& }\&\& # Note that this will be global:\& use bigint qw/hex oct/;\& print hex("0x1234567890123490"),"\en";\& print oct("01234567890123490"),"\en";.Ve.SH "DESCRIPTION".IX Header "DESCRIPTION"All operators (including basic math operations) are overloaded. Integerconstants are created as proper BigInts..PPFloating point constants are truncated to integer. All parts and results ofexpressions are also truncated..PPUnlike integer, this pragma creates integer constants that are onlylimited in their size by the available memory and \s-1CPU\s0 time..Sh "use integer vs. use bigint".IX Subsection "use integer vs. use bigint"There is one small difference between \f(CW\*(C`use integer\*(C'\fR and \f(CW\*(C`use bigint\*(C'\fR: theformer will not affect assignments to variables and the return value ofsome functions. \f(CW\*(C`bigint\*(C'\fR truncates these results to integer too:.PP.Vb 8\& # perl \-Minteger \-wle \*(Aqprint 3.2\*(Aq\& 3.2\& # perl \-Minteger \-wle \*(Aqprint 3.2 + 0\*(Aq\& 3\& # perl \-Mbigint \-wle \*(Aqprint 3.2\*(Aq\& 3\& # perl \-Mbigint \-wle \*(Aqprint 3.2 + 0\*(Aq\& 3\&\& # perl \-Mbigint \-wle \*(Aqprint exp(1) + 0\*(Aq\& 2\& # perl \-Mbigint \-wle \*(Aqprint exp(1)\*(Aq\& 2\& # perl \-Minteger \-wle \*(Aqprint exp(1)\*(Aq\& 2.71828182845905\& # perl \-Minteger \-wle \*(Aqprint exp(1) + 0\*(Aq\& 2.Ve.PPIn practice this makes seldom a difference as \fBparts and results\fR ofexpressions will be truncated anyway, but this can, for instance, affect thereturn value of subroutines:.PP.Vb 2\& sub three_integer { use integer; return 3.2; } \& sub three_bigint { use bigint; return 3.2; }\& \& print three_integer(), " ", three_bigint(),"\en"; # prints "3.2 3".Ve.Sh "Options".IX Subsection "Options"bigint recognizes some options that can be passed while loading it via use.The options can (currently) be either a single letter form, or the long form.The following options exist:.IP "a or accuracy" 2.IX Item "a or accuracy"This sets the accuracy for all math operations. The argument must be greaterthan or equal to zero. See Math::BigInt's \fIbround()\fR function for details..Sp.Vb 1\& perl \-Mbigint=a,2 \-le \*(Aqprint 12345+1\*(Aq.Ve.SpNote that setting precision and accurary at the same time is not possible..IP "p or precision" 2.IX Item "p or precision"This sets the precision for all math operations. The argument can be anyinteger. Negative values mean a fixed number of digits after the dot, andare <B>ignored</B> since all operations happen in integer space.A positive value rounds to this digit left from the dot. 0 or 1 mean round tointeger and are ignore like negative values..SpSee Math::BigInt's \fIbfround()\fR function for details..Sp.Vb 1\& perl \-Mbignum=p,5 \-le \*(Aqprint 123456789+123\*(Aq.Ve.SpNote that setting precision and accurary at the same time is not possible..IP "t or trace" 2.IX Item "t or trace"This enables a trace mode and is primarily for debugging bigint orMath::BigInt..IP "hex" 2.IX Item "hex"Override the built-in \fIhex()\fR method with a version that can handle bigintegers. Note that under Perl v5.9.4 or ealier, this will be globaland cannot be disabled with \*(L"no bigint;\*(R"..IP "oct" 2.IX Item "oct"Override the built-in \fIoct()\fR method with a version that can handle bigintegers. Note that under Perl v5.9.4 or ealier, this will be globaland cannot be disabled with \*(L"no bigint;\*(R"..IP "l, lib, try or only" 2.IX Item "l, lib, try or only"Load a different math lib, see \*(L"Math Library\*(R"..Sp.Vb 3\& perl \-Mbigint=lib,GMP \-e \*(Aqprint 2 ** 512\*(Aq\& perl \-Mbigint=try,GMP \-e \*(Aqprint 2 ** 512\*(Aq\& perl \-Mbigint=only,GMP \-e \*(Aqprint 2 ** 512\*(Aq.Ve.SpCurrently there is no way to specify more than one library on the commandline. This means the following does not work:.Sp.Vb 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -