⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bignum.3

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 3
📖 第 1 页 / 共 2 页
字号:
.\" 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 "bignum 3".TH bignum 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"bignum \- Transparent BigNumber support for Perl.SH "SYNOPSIS".IX Header "SYNOPSIS".Vb 1\&  use bignum;\&\&  $x = 2 + 4.5,"\en";                    # BigFloat 6.5\&  print 2 ** 512 * 0.1,"\en";            # really is what you think it is\&  print inf * inf,"\en";                 # prints inf\&  print NaN * 3,"\en";                   # prints NaN\&\&  {\&    no bignum;\&    print 2 ** 256,"\en";                # a normal Perl scalar now\&  }\&\&  # for older Perls, note that this will be global:\&  use bignum 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. Integer andfloating-point constants are created as proper BigInts or BigFloats,respectively..PPIf you do.PP.Vb 1\&        use bignum;.Ve.PPat the top of your script, Math::BigFloat and Math::BigInt will be loadedand any constant number will be converted to an object (Math::BigFloat forfloats like 3.1415 and Math::BigInt for integers like 1234)..PPSo, the following line:.PP.Vb 1\&        $x = 1234;.Ve.PPcreates actually a Math::BigInt and stores a reference to in \f(CW$x\fR.This happens transparently and behind your back, so to speak..PPYou can see this with the following:.PP.Vb 1\&        perl \-Mbignum \-le \*(Aqprint ref(1234)\*(Aq.Ve.PPDon't worry if it says Math::BigInt::Lite, bignum and friends will use Liteif it is installed since it is faster for some operations. It will beautomatically upgraded to BigInt whenever necessary:.PP.Vb 1\&        perl \-Mbignum \-le \*(Aqprint ref(2**255)\*(Aq.Ve.PPThis also means it is a bad idea to check for some specific package, sincethe actual contents of \f(CW$x\fR might be something unexpected. Due to thetransparent way of bignum \f(CW\*(C`ref()\*(C'\fR should not be necessary, anyway..PPSince Math::BigInt and BigFloat also overload the normal math operations,the following line will still work:.PP.Vb 1\&        perl \-Mbignum \-le \*(Aqprint ref(1234+1234)\*(Aq.Ve.PPSince numbers are actually objects, you can call all the usual methods fromBigInt/BigFloat on them. This even works to some extent on expressions:.PP.Vb 4\&        perl \-Mbignum \-le \*(Aq$x = 1234; print $x\->bdec()\*(Aq\&        perl \-Mbignum \-le \*(Aqprint 1234\->copy()\->binc();\*(Aq\&        perl \-Mbignum \-le \*(Aqprint 1234\->copy()\->binc\->badd(6);\*(Aq\&        perl \-Mbignum \-le \*(Aqprint +(1234)\->copy()\->binc()\*(Aq.Ve.PP(Note that print doesn't do what you expect if the expression starts with\&'(' hence the \f(CW\*(C`+\*(C'\fR).PPYou can even chain the operations together as usual:.PP.Vb 2\&        perl \-Mbignum \-le \*(Aqprint 1234\->copy()\->binc\->badd(6);\*(Aq\&        1241.Ve.PPUnder bignum (or bigint or bigrat), Perl will \*(L"upgrade\*(R" the numbersappropriately. This means that:.PP.Vb 2\&        perl \-Mbignum \-le \*(Aqprint 1234+4.5\*(Aq\&        1238.5.Ve.PPwill work correctly. These mixed cases don't do always work when usingMath::BigInt or Math::BigFloat alone, or at least not in the way normal Perlscalars work..PPIf you do want to work with large integers like under \f(CW\*(C`use integer;\*(C'\fR, try\&\f(CW\*(C`use bigint;\*(C'\fR:.PP.Vb 2\&        perl \-Mbigint \-le \*(Aqprint 1234.5+4.5\*(Aq\&        1238.Ve.PPThere is also \f(CW\*(C`use bigrat;\*(C'\fR which gives you big rationals:.PP.Vb 2\&        perl \-Mbigrat \-le \*(Aqprint 1234+4.1\*(Aq\&        12381/10.Ve.PPThe entire upgrading/downgrading is still experimental and might not workas you expect or may even have bugs. You might get errors like this:.PP.Vb 2\&        Can\*(Aqt use an undefined value as an ARRAY reference at\&        /usr/local/lib/perl5/5.8.0/Math/BigInt/Calc.pm line 864.Ve.PPThis means somewhere a routine got a BigFloat/Lite but expected a BigInt (orvice versa) and the upgrade/downgrad path was missing. This is a bug, pleasereport it so that we can fix it..PPYou might consider using just Math::BigInt or Math::BigFloat, since theyallow you finer control over what get's done in which module/space. Forinstance, simple loop counters will be Math::BigInts under \f(CW\*(C`use bignum;\*(C'\fR andthis is slower than keeping them as Perl scalars:.PP.Vb 1\&        perl \-Mbignum \-le \*(Aqfor ($i = 0; $i < 10; $i++) { print ref($i); }\*(Aq.Ve.PPPlease note the following does not work as expected (prints nothing), sinceoverloading of '..' is not yet possible in Perl (as of v5.8.0):.PP.Vb 1\&        perl \-Mbignum \-le \*(Aqfor (1..2) { print ref($_); }\*(Aq.Ve.Sh "Options".IX Subsection "Options"bignum 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 \-Mbignum=a,50 \-le \*(Aqprint sqrt(20)\*(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 any

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -