zoukankan      html  css  js  c++  java
  • 算术运算

    使用expr - 整数运算

    expr可以用来进行算术求值,他将会输出求值的结果。可以使用反单引号``或者等价的$()将其输出的结果赋值给其他变量。

    注意变量要使用$

    out=`expr 5 + 7`
    echo $out
    
    out=$(expr $out + 5)
    echo $out

    expr可以进行的运算有:+, -, *, /, %, >, <, >=, <=, =, |, & ,其中* < >符号要使用转移字符才能够让bash识别。不能进行幂运算。

    expr还可以对字符串进行处理,包括match、substr、index、length

    使用$[ * ],在其中进行算术运算,可以省略书写`expr *`,同时使用变量不用加$。另外,可以使用**表示幂运算。

    i=2
    out=$[i +7]
    echo $out

    使用C语言风格 - 整数运算

    这里,双括号中的变量不需要使用$。

    在双括号中时直接可以进行C风格的代码执行的,这里的$表明,会将C代码的执行结果作为一个右操作数。

    可以使用**表示幂运算

    val=10
    out=$((val+1))
    echo $out

    也可以不赋值,直接使用

    val=10
    ((out=val+1+5))
    echo $out

    使用let运算 - 整数运算

    let运算

    i=1
    b=2
    let n=b**10-i
    echo $n

    以上算术运算只能对整数进行计算,下边介绍浮点数的运算

    bc - 浮点运算

    bc是一个广泛使用的数值计算环境,这里只介绍简单的使用,更多请参见 man bc

    在安装有bc的机器上:
    1. 在shell中输入bc即可进行计算。
    2. 编写好bc计算文件,可以直接bc file_name进行计算
    3. 使用管道|,将上一个命令的输出作为输入,进行计算。

    使用bc进行计算需要注意:
    1. 使用时要设置scale,否则小数默认为0位
    2. 可以设置输入输出的进制,ibase obase
    3. 支持数学运算需要加上特定参数。“bc -l”。可以使用s、c、a、l、j、e,分表表示函数sin/cos/atan/ln/bessel function/exponential function

    #!/bin/bash
    echo "scale=7; 355/113" | bc 
    echo "ibase=16; FFFF" | bc
    echo "obase=16; 65535" | bc
    echo "scale=50;a(1)*4" | bc -l

     使用$()或者反逗点``,将计算结果取出来:

     

    #!/bin/bash
    c=$(echo "scale=7; 355/113" | bc )
    echo $c
    
    c=`echo "scale=7; 355/113" | bc `
    echo $c

     

     

  • 相关阅读:
    CSU 1333 Funny Car Racing
    FZU 2195 检查站点
    FZU 2193 So Hard
    ZOJ 1655 FZU 1125 Transport Goods
    zoj 2750 Idiomatic Phrases Game
    hdu 1874 畅通工程续
    hdu 2489 Minimal Ratio Tree
    hdu 3398 String
    洛谷 P2158 [SDOI2008]仪仗队 解题报告
    POJ 1958 Strange Towers of Hanoi 解题报告
  • 原文地址:https://www.cnblogs.com/qiusuo/p/5582451.html
Copyright © 2011-2022 走看看