Linux Shell编程(13)——数字常量

来源:互联网 发布:pkhex神秘礼物数据库 编辑:程序博客网 时间:2024/05/10 19:56
除非一个数字有特别的前缀或符号,否则shell脚本把它当成十进制的数。一个前缀为0的数字是八进制数。一个前缀为0x的数字是十六进制数。一个数用内嵌的#来求值则看成BASE#NUMBER(有范围和符号限制)


例子:数字常量的表示法


#!/bin/bash# numbers.sh: 不同基数的数字表示法.# 十进制数: 它是默认的let "dec = 32"echo "decimal number = $dec"             # 32# 这儿没有什么特别的.# 八进制数: 以'0'(零)为前缀let "oct = 032"echo "octal number = $oct"               # 26# 结果表示为十进制.# --------- ------ -- -------# 十六进制: 以'0x'或'0X'为前缀let "hex = 0x32"echo "hexadecimal number = $hex"         # 50# 以十进制的形式表示.# 其他的进制的表示形式: BASE#NUMBER# BASE值在2和64之间.# NUMBER必须使用在BASE范围内的符号,看下面的示例.let "bin = 2#111100111001101"echo "binary number = $bin"              # 31181let "b32 = 32#77"echo "base-32 number = $b32"             # 231let "b64 = 64#@_"echo "base-64 number = $b64"             # 4031# 这个符号只能工作在ASCII码值为2-64的范围限制.# 10个数字+26个小写字母+26个大写字母+ @ + _echoecho $((36#zz)) $((2#10101010)) $((16#AF16)) $((53#1aA))                                         # 1295 170 44822 3375#  重要提示:#  --------------#  使用一个超出给定进制的数字将会引起一个错误信息。#+ gives an error message.let "bad_oct = 081"# ((部分的) 错误信息输出:#  bad_oct = 081: value too great for base (error token is "081")#              八进制数字只能使用数字0-7.exit 0


0 0