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


    除非一个数字有特别的前缀或符号,否则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"              # 31181
    
    
    let "b32 = 32#77"
    echo "base-32 number = $b32"             # 231
    
    
    let "b64 = 64#@_"
    echo "base-64 number = $b64"             # 4031
    # 这个符号只能工作在ASCII码值为2-64的范围限制.
    # 10个数字+26个小写字母+26个大写字母+ @ + _
    
    
    
    
    echo
    
    
    echo $((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


  • 相关阅读:
    overflow妙用--去除默认滚动条,内容仍可滚动
    call()与构造函数的运用
    this与super
    构造方法
    多态
    抽象类与接口
    面向对象的基本特征
    类与对象
    面向过程与面向对象
    java自动拆装箱
  • 原文地址:https://www.cnblogs.com/new0801/p/6176868.html
Copyright © 2020-2023  润新知