📄 numerical-constants.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>Numerical Constants</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Advanced Bash-Scripting Guide"HREF="index.html"><LINKREL="UP"TITLE="Operations and Related Topics"HREF="operations.html"><LINKREL="PREVIOUS"TITLE="Operations and Related Topics"HREF="operations.html"><LINKREL="NEXT"TITLE="Beyond the Basics"HREF="part3.html"><METAHTTP-EQUIV="Content-Style-Type"CONTENT="text/css"><LINKREL="stylesheet"HREF="common/kde-common.css"TYPE="text/css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=iso-8859-1"><METAHTTP-EQUIV="Content-Language"CONTENT="en"><LINKREL="stylesheet"HREF="common/kde-localised.css"TYPE="text/css"TITLE="KDE-English"><LINKREL="stylesheet"HREF="common/kde-default.css"TYPE="text/css"TITLE="KDE-Default"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#AA0000"VLINK="#AA0055"ALINK="#AA0000"STYLE="font-family: sans-serif;"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="operations.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">Chapter 8. Operations and Related Topics</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="part3.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="NUMERICAL-CONSTANTS"></A>8.2. Numerical Constants</H1><P><ANAME="NUMCONSTANTS"></A>A shell script interprets a number as decimal (base 10), unless that number has a special prefix or notation. A number preceded by a <TTCLASS="REPLACEABLE"><I>0</I></TT> is <TTCLASS="REPLACEABLE"><I>octal</I></TT> (base 8). A number preceded by <TTCLASS="REPLACEABLE"><I>0x</I></TT> is <TTCLASS="REPLACEABLE"><I>hexadecimal</I></TT> (base 16). A number with an embedded <TTCLASS="REPLACEABLE"><I>#</I></TT> evaluates as <TTCLASS="REPLACEABLE"><I>BASE#NUMBER</I></TT> (with range and notational restrictions).</P><DIVCLASS="EXAMPLE"><HR><ANAME="NUMBERS"></A><P><B>Example 8-4. Representation of numerical constants</B></P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="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.</PRE></TD></TR></TABLE><HR></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="operations.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="part3.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">Operations and Related Topics</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="operations.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Beyond the Basics</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -