PERLNUMBER 7
目录
PERLNUMBER
NAMESYNOPSIS æ»è§
DESCRIPTION æè¿°
Storing numbers æ°å¼åå¨
Numeric operators and numeric conversions æ°å¼è¿ç®ç¬¦åæ°å¼è½¬æ¢
Flavors of Perl numeric operations æ°å¼æä½çç¹è²
AUTHOR ä½è
SEE ALSO åè§
è·
NAME
perlnumber - Perl 䏿°åçè¯ä¹ä»¥åç®æ¯æä½
SYNOPSIS æ»è§
$n = 1234; #
åè¿å¶æ°
$n = 0b1110011; #
äºè¿å¶æ°
$n = 01234; #
å«è¿å¶æ°
$n = 0x1234; #
ååè¿å¶æ°
$n = 12.34e-56; #
ææ°å½¢å¼
$n = "-12.34e56"; #
ç¨å符串æè¿°çæ°
$n = "1234"; #
ç¨å符串æè¿°çæ°
DESCRIPTION æè¿°
è¿ç¯æç« æè¿°äºPerlå鍿¯ææ ·å¤çæ°çæ°å¼çã
å¨è¿éä¸ä¼æå°Perlçè¿ç®ç¬¦éè½½æºå¶ï¼è¿ç®ç¬¦éè½½åè®¸ç¨æ·èªå®ä¹å¯¹æ°çæä½ï¼ä¾å¦å¯¹ä»»æå¤§çæ´åæ°æèä»»æç²¾åº¦çæµ®ç¹æ°è¿è¡çæä½ï¼æèä¸äºå¶å®çç®æ¯ç±»å妿±æ¨¡æä½åp-adicæä½ç- çãè¦æ³ç¥éè¿ç®ç¬¦éè½½çç»èï¼è¯·çéè½½ã
Storing numbers æ°å¼åå¨
Perå¨åé¨è½ç¨ä¸ç§æ¹æ³è¡¨ç¤ºæ°å¼ï¼ç¨âNativeæ´åâï¼âNativeæµ®ç¹åâææ¯ç¨åè¿å¶å½¢å¼çå- 符串ãå¶ä¸åè¿å¶å- 符串å¯ä»¥å¸¦ä¸ä¸ªææ°æè¿°çé¨åï¼å°±å"12.34e-56"ãå¨è¿éæ¯è¯- Nativeçå«ä¹æ¯ç¨äºç¼è¯ perl ç C ç¼è¯å¨ææ¯æçç±»åã
卿们è°åæ´åæ¶ï¼"native"è¿ä¸ªæ¯è¯- æåå«çå«ä¹æ¯æä»¬è°è®ºæµ®ç¹æ°æ¶è¦å°ä¸äºã对"native"æ´åæ¥è¯´ï¼è¿ä¸ªæ¯è¯- æçå«ä¹ä»ä»æ¯ææ´åæ°çå¯ä»¥ææå¤§å¼åæå°å¼ä¼æ¯2çææ¬¡æ¹ï¼è对"native"æµ®ç¹æ°æ¥è¯´ï¼æä¸æ¡åºæ¬çéå¶å°±æ¯å®åªè½è¡¨ç¤ºé£äºè½ç¨æéåä½äºè¿å¶å°æ°æè¡¨ç¤ºç宿°ã䏾便¥è¯´ï¼0.9就䏿¯"native"æµ®ç¹æ°ï¼å为0.9ç¨äºè¿å¶å°æ°è¡¨ç¤ºæ¯ææç©·å¤ä½çï¼
äºè¿å¶0.1110011001100...
åºå 1100 å°æ 伿- ¢ç循ç¯ä¸å»ãé¤äºè¿æ¡éå¶ä»¥å¤ï¼äºè¿å¶æµ®ç¹æ°å¨ç¨ææ°åå¼è¡¨è¾¾æ¶ä¹å- æéå¶ãå¨ç¹å®ç硬件æ¡ä»¶ä¸ï¼æµ®ç¹åçæ°å¯ä»¥å- 卿å¤53ä½äºè¿å¶æ°ååä¸èå´ä»-1024å°1024çææ°å¼(è¯èï¼-1024å°1024ç¨11ä½äºè¿å¶æ°ï¼åä¸53ç- äº64ï¼å°±æ¯è¯´è¿éç¨ç¨64ä½å- ä¸ä¸ªæµ®ç¹æ°ï¼è½¬æ¢æåè¿å¶ä¹å°±æ¯è¯´å·®ä¸å¤è½ç¨16ä½æææ°å- åä»-304å°304çææ°å¼åèµ·æ¥è¡¨ç¤ºä¸ä¸ªæµ®ç¹æ°ãè¿ç§è¡¨ç¤ºæ¹æ³çä¸ç§ç»æå°±æ¯æä»¬ä¸å¯è½å¨ä¸æå¤±ç²¾åº¦çæåµä¸ç¨æµ®ç¹åå- å¨å12345678901234567è¿æ ·çæ°ã
类似çï¼åè¿å¶å符串ä¹åªè½è¡¨ç¤ºæé使°çåè¿å¶æ°.åå°±å- 符串æ¥è¨,å®å¯ä»¥æ¯ä»»æé¿åº¦ç,没æä»ä¹å³äºææ°ææææ°å- 使°ä¸çéå¶.(使¯è¯·æè¯å°æä»¬æ£å¨è®¨è®ºçåæ¾æ°å¼çé£äºè§å.äºå®æ¯ä½ è½ç¨å- ç¬¦ä¸²åæ¾å¾å¤§çæ°å¼å¹¶ä¸ä»£è¡¨ç¸åºçæ°å¼æä½è½å¤æå符串ä¸- çææçæ°ä½é½ç¨ä¸.欲ç¥è¯¦æ,请ç"æ°å¼è¿ç®ç¬¦åæ°å¼è½¬æ¢"
äºå®ä¸âNativeæ´åæ°âå- å¨çæ°å¼å¯ä»¥æ¯å¸¦ç¬¦å·çï¼æèæ¯ä¸å¸¦ç¬¦å·çãæä»¥å¾å¸åçï¼Perlä¸- âNativeæ´åæ°âå¯ä»¥è¡¨ç¤ºçæ´æ°çèå´æ¯-2**31..2**32-1ï¼è¿ä¸ªèå´å¯¹64ä½çæ´æ°æ¥è¯´æ¯æ¯è¾åéçãä½è¿å¹¶ä¸æå³çPerlåªè½å¤çè¿ä¸ªèå´åçæ´æ°ï¼æµ®ç¹ç±»åå¯ä»¥å- 䏿´å¤§çæ´æ°ã
æ»èè¨ä¹ï¼Perlä¸çæ°æ¯æé使°çåè¿å¶æ°æè说æ¯è¶³å¤ççäºè¿å¶æ°ã
Numeric operators and numeric conversions æ°å¼è¿ç®ç¬¦åæ°å¼è½¬æ¢
å°±ååé¢è¯´ç飿 ·ï¼Perlå¯ä»¥ç¨ä¸ç§æ ¼å¼ä¸çä»»æä¸ç§å- æ¾ä¸ä¸ªæ°ï¼ä½æ¯å¤§å¤æ°è¿ç®ç¬¦åªè½çè§£è¿ä¸ç§æ ¼å¼ä¸- çä¸ç§ãå½ä¸ä¸ªæ°å¼ä½ä¸ºåæ°ä¼ç»ä¸ä¸ªè¿ç®ç¬¦æ¶ï¼å®å°ä¼è¢«è½¬æ¢æè¿ç®ç¬¦å¯ä»¥çè§£çé£ç§æ¼å¼ã
å¯è½åºç°çè½¬æ¢æä¸é¢åç§ï¼
native
æ´å --> native
æµ®ç¹å (*)
native æ´å -->
åè¿å¶å½¢å¼çå符串
native æµ®ç¹å -->
native æ´å (*)
native æµ®ç¹å -->
decimal string (*)
åè¿å¶çå符串
--> native æ´å
åè¿å¶çå符串
--> native æµ®ç¹å
(*)
è¿äºè½¬æ¢æç§ä¸åçè§åè¿è¡ï¼
|
• |
å¦æåæ¥çæ°å¯ä»¥ç¨è¦è½¬æ¢æçæ ¼å¼è¡¨è¿°ï¼åå¶å¼ç»§ç»ä½¿ç¨ï¼ä¸ä¼æ¹åã | ||
|
• |
å¦æåæ¥çæ°è¶åºäºè¦è½¬æ¢æçæ¼å¼æè½è¡¨è¿°çæéï¼åææ¥è¿æéçé£ä¸ªå¼ä¼è¢«ç¨æ¥åæåçå¼ãï¼è¿ä¼æä¿¡æ¯ä¸çæå¤±ï¼ | ||
|
• |
å¦æåæ¥çæ°å¨è¦è½¬æ¢æçæ¼å¼æè½è¡¨è¿°ç两个ç¸é»çæ°ä¹é´ï¼åè¿ä¸¤ä¸ªæ°ä¸- çä¸ä¸ªä¼è¢«ç¨æ¥åæåçå¼ãï¼è¿ä¼æä¿¡æ¯ä¸çæå¤±ï¼ | ||
|
• |
å¨ "native æµ®ç¹å --> native æ´å" ç转æ¢ä¸ï¼ç»æçå¼å°äºç- äºåæ¥çå¼ãï¼å 为æ¯ç´æ¥æªåå°æ°ä½åæ´çï¼("Rounding to zero".) | ||
|
• |
妿 "åè¿å¶çå符串 --> native æ´å" ç转æ¢ä¸è½å¨ä¸æå¤±ä¿¡æ¯çæåµä¸å®æï¼ç»æå°ä¼åä¸åç转æ¢åºåçç»æä¸è´ï¼"åè¿å¶çå- 符串 --> native_æµ®ç¹å --> native_æ´å". ç¹å«è¦æåºçæ¯ï¼å°½ç®¡å "0.99999999999999999999" è¿æ ·çæ°å¯è½ä¼åæ´æ1ï¼åæ´ä¸è¬æ¯å¾åäº0çã |
éå¶ : ä¸é¢æ æ "(*)" ç转æ¢å嫿Cç¼è¯å¨çå¨ä½æ- ¥éª¤ãå¨ç¹æ®æåµä¸ï¼Cç¼è¯å¨çä¸äºç¹æ§æèBugså¯è½ä¼å¯¼è´ä¸è¿°ä¸äºè§åç䏿ç«ã
Flavors of Perl numeric operations æ°å¼æä½çç¹è²
Perl ä¸- å¸¦ææ°å¼åæ°çæä½å°æç§åç§æ¹æ³å¤çåæ°ï¼å®ä»¬å¯è½ä¼å°åæ°å¼ºå¶è½¬æ¢ä¸ºæ´åï¼æµ®ç¹åææ¯å- 符串åä¸- çä¸ç§ï¼æèæç§æä½æ°çæ¼å¼æ¥å¤çåæ°ã卿ä¸ä¸ªæ°çç±»å强å¶è½¬æ¢æå¦ä¸ç§ç¹å®çç±»åçè¿ç¨ä¸- ï¼åæ¥åå¨çå¼ä¸ä¼æ¹åã
ææéè¦æ´åæ°ä½åæ°çè¿ç®ç¬¦ä¼å¯¹åæ°è¿è¡å模çæä½ãæ¯å¦è¯´ç¨32ä½å-
æ¾æ´åæ°æ¶ä¼ææ°å¯¹2ç32次æ¹å模
("mod
2**32")ï¼æä»¥
"sprintf "%u", -1"
çç»æå "sprintf
"%u", ˜0"
çç»ææ¯ä¸æ ·çã
Arithmetic operators
ç®æ¯è¿ç®ç¬¦
äºè¿å¶è¿ç®ç¬¦ "+" "-" "*" "/" "%" "==" "!=" ">" "<" ">=" "<=" 以åä¸åè¿ç®ç¬¦ "-" "abs" and "--" æ»è¯å¾å°åæ°è½¬æ¢ä¸ºæ´å½¢ãå¦æè½¬æ¢é½å¯ä»¥ææç²¾åº¦å°è¿è¡ï¼å¹¶ä¸è¿ç®ä¹ææäºç²¾åº¦ï¼é£ä¹è¿åæ´æ°çç»æãå¦åï¼åæ°è¢«è½¬æ¢ä¸ºæµ®ç¹æ°ï¼è¿åæµ®ç¹æ°ç»æã转æ¢çç¼å²è¿ç¨ä¿è¯äºæ´æ°è½¬æ¢ä¸ä¼å°æµ®ç¹æ°çé¶å¤´ä¸¢æ
|
++ |
"++" çè¡ä¸ºä¸å¶ä»æä½ç¬¦ç±»ä¼¼ï¼ä½æ¯å¦ææä½æ°æ¯æ»¡è¶³ "/ˆ[a-zA-Z]*[0-9]*\z/" æ ¼å¼çå符串ï¼å°è¿è¡ perlop ä¸æè¿°çå- 符串éå¢è¿ç®ã |
å®ä¹äº "use integer" æ¶çç®æ¯è¿ç®
å¨ "use integer;" çä½ç¨èå´åï¼åä¹ä¸é¢ååºçæææä½ç¬¦é½å°å®ä»¬çæä½æ°è½¬æ¢ä¸ºæ´æ°ï¼è¿åæ´æ°çç»æï¼ä¾å¤æåµæ¯ "abs", "++" å "--"ï¼å¨è¿ç§æåµä¸ä¸æ¹åè¡ä¸ºã
Other mathematical operators å¶ä»æ°å¦æä½ç¬¦
类似 "**", "sin" å "exp" çæä½ç¬¦å¼ºå¶åæ°ä¸ºæµ®ç¹æ ¼å¼ã
Bitwise operators 使ä½ç¬¦
妿䏿¯åç¬¦ä¸²ï¼æä½æ°è¢«å¼ºå¶è½¬æ¢ä¸ºæ´å
å®ä¹äº "use integer" æ¶çä½è¿ç®
强å¶åæ°ä¸ºæ´åãå¹¶ä¸ï¼ç§»ä½æä½å¨åé¨ä½¿ç¨æç¬¦å·æ´åè䏿¯é»è®¤çæç¬¦å·æ°
éè¦æ´åæä½æ°çæä½ç¬¦
å¼ºå¶æä½æ°è½¬æ¢ä¸ºæ´åãä¾å¦ï¼å¨å½æ° "sysread" ç第ä¸å第åä¸ªåæ°ä¸- ï¼è¿æ ·åæ¯åéçã
éè¦å符串çæä½ç¬¦
å¼ºå¶æä½æ°ä¸ºåç¬¦ä¸²æ ¼å¼ãä¾å¦ï¼å¨ "printf "%s", $value" ä¸- ï¼è¿æ ·åæ¯åéçã
尽管强å¶è½¬æ¢åæ°ä¸ºç¹å®æ ¼å¼ä¸ä¼æ¹åå·²åå¨çæ°åï¼Perl ä¼è®°å½è½¬æ¢çç»æãç¹å«çï¼å°½ç®¡ç¬¬ä¸æ¬¡è½¬æ¢ä¼èè´¹ä¸å®æ¶é´ï¼éå¤è¿è¡çæä½ä¸ä¼éè¦éæ°è½¬æ¢ã
AUTHOR ä½è
Ilya Zakharevich "ilya@math.ohio-state.edu"
ç± Gurusamy Sarathy <gsar@ActiveState.com> ç¼è¾
ç± Nicholas Clark <nick@ccl4.org> æ´æ°ä¸º 5.8.0 ç
SEE ALSO åè§
overload, perlop
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh