Shall高级编程
源代码在线查看: numerical-constants.html
> > >Numerical Constants > NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ "> REL="HOME" TITLE="Advanced Bash-Scripting Guide" HREF="index.html"> REL="UP" TITLE="Operations and Related Topics" HREF="operations.html"> REL="PREVIOUS" TITLE="Operations and Related Topics" HREF="operations.html"> REL="NEXT" TITLE="Beyond the Basics" HREF="part3.html"> HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> REL="stylesheet" HREF="common/kde-common.css" TYPE="text/css"> HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> HTTP-EQUIV="Content-Language" CONTENT="en"> REL="stylesheet" HREF="common/kde-localised.css" TYPE="text/css" TITLE="KDE-English"> REL="stylesheet" HREF="common/kde-default.css" TYPE="text/css" TITLE="KDE-Default"> > CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#AA0000" VLINK="#AA0055" ALINK="#AA0000" STYLE="font-family: sans-serif;" > CLASS="NAVHEADER" > SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" > > COLSPAN="3" ALIGN="center" >Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting > > > WIDTH="10%" ALIGN="left" VALIGN="bottom" > HREF="operations.html" ACCESSKEY="P" >Prev > > WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 8. Operations and Related Topics > WIDTH="10%" ALIGN="right" VALIGN="bottom" > HREF="part3.html" ACCESSKEY="N" >Next > > > > ALIGN="LEFT" WIDTH="100%"> > CLASS="SECT1" > CLASS="SECT1" > NAME="NUMERICAL-CONSTANTS" > >8.2. Numerical Constants > > NAME="NUMCONSTANTS" > >A shell script interprets a number as decimal (base 10), unless that number has a special prefix or notation. A number preceded by a CLASS="REPLACEABLE" > >0 > > is CLASS="REPLACEABLE" > >octal > > (base 8). A number preceded by CLASS="REPLACEABLE" > >0x > > is CLASS="REPLACEABLE" > >hexadecimal > > (base 16). A number with an embedded CLASS="REPLACEABLE" > ># > > evaluates as CLASS="REPLACEABLE" > >BASE#NUMBER > > (with range and notational restrictions). > CLASS="EXAMPLE" > NAME="NUMBERS" > > > >Example 8-4. Representation of numerical constants > > BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" > > > CLASS="PROGRAMLISTING" > 1 #!/bin/bash 2 # numbers.sh: Representation of numbers in different bases. 3 4 # Decimal: the default 5 let "dec = 32" 6 echo "decimal number = $dec" # 32 7 # Nothing out of the ordinary here. 8 9 10 # Octal: numbers preceded by '0' (zero) 11 let "oct = 032" 12 echo "octal number = $oct" # 26 13 # Expresses result in decimal. 14 # --------- ------ -- ------- 15 16 17 # Hexadecimal: numbers preceded by '0x' or '0X' 18 let "hex = 0x32" 19 echo "hexadecimal number = $hex" # 50 20 21 echo $((0x9abc)) # 39612 22 # ^^ ^^ double-parentheses arithmetic expansion/evaluation 23 # Expresses result in decimal. 24 25 26 27 # Other bases: BASE#NUMBER 28 # BASE between 2 and 64. 29 # NUMBER must use symbols within the BASE range, see below. 30 31 32 let "bin = 2#111100111001101" 33 echo "binary number = $bin" # 31181 34 35 let "b32 = 32#77" 36 echo "base-32 number = $b32" # 231 37 38 let "b64 = 64#@_" 39 echo "base-64 number = $b64" # 4031 40 # This notation only works for a limited range (2 - 64) of ASCII characters. 41 # 10 digits + 26 lowercase characters + 26 uppercase characters + @ + _ 42 43 44 echo 45 46 echo $((36#zz)) $((2#10101010)) $((16#AF16)) $((53#1aA)) 47 # 1295 170 44822 3375 48 49 50 # Important note: 51 # -------------- 52 # Using a digit out of range of the specified base notation 53 #+ gives an error message. 54 55 let "bad_oct = 081" 56 # (Partial) error message output: 57 # bad_oct = 081: value too great for base (error token is "081") 58 # Octal numbers use only digits in the range 0 - 7. 59 60 exit 0 # Thanks, Rich Bartell and Stephane Chazelas, for clarification. > > > > > > CLASS="NAVFOOTER" > ALIGN="LEFT" WIDTH="100%"> SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" > > WIDTH="33%" ALIGN="left" VALIGN="top" > HREF="operations.html" ACCESSKEY="P" >Prev > > WIDTH="34%" ALIGN="center" VALIGN="top" > HREF="index.html" ACCESSKEY="H" >Home > > WIDTH="33%" ALIGN="right" VALIGN="top" > HREF="part3.html" ACCESSKEY="N" >Next > > > > WIDTH="33%" ALIGN="left" VALIGN="top" >Operations and Related Topics > WIDTH="34%" ALIGN="center" VALIGN="top" > HREF="operations.html" ACCESSKEY="U" >Up > > WIDTH="33%" ALIGN="right" VALIGN="top" >Beyond the Basics > > > > > >