• linux BC命令行计算器


    1. 基本使用:

    $ bc <<< 5*4
    20
    $ bc <<< 5+4
    9
    $ bc <<< 5-4
    1
    或者
    $ echo "5*4" | bc
    20
    $ echo "5+4" | bc
    9
    $ echo "5-4" | bc
    1

    也能够把算式写到文件中面。然后一次计算。

    $ cat calcFile 
    5+5
    6+7
    
    $ bc < calcFile 
    10
    13

    也能够使用HERE 命令:

    $ bc << HERE
    > 1+4
    > 4-1
    > 2*4
    > HERE
    5
    3
    8

    能够使用内置的变量 last 引用上一次的结果:

    $ echo "5-4;last+6" | bc
    1
    7
    last 也能够用 点号取代:

    $ echo "5-4;.+6" | bc
    1
    7

    2. 浮点数运算:

    能够使用scale指定小数点之后的位数(默觉得0,即整数)

    $ echo "sqrt(10)" | bc
    3
    $ echo "scale=1;sqrt(10)" | bc
    3.1
    $ echo "scale=10;sqrt(10)" | bc
    3.1622776601

    有时候得不到指定的位数:

    $ echo "scale=10; 1.25*9" | bc
    11.25
    
    此时,能够改动为:

    $ echo "scale=10; 1.25*9/1" | bc
    11.2500000000
    

    3. 数制转换:

    能够使用变量 ibase表示转换前数字的数制;obase表示转换后数字的数制

    $ echo 'obase=16;128' | bc
    80
    
    
    $ echo 'ibase=16;obase=A;80' | bc
    128
    $ echo 'obase=2;128' | bc
    10000000
    $ echo 'ibase=2;obase=A;10000000' | bc
    128

    $ echo "obase=10;ibase=16;80" | bc
    128

    4. 指数运算:

    $ echo "5^5" | bc
    3125
    
    $ echo "(5^5)^5" | bc
    298023223876953125
    
    记得第一个指数运算的结果要加入括号。

    5. 基于函数库的运算

    bc支持下面函数:

    s(x): 正弦函数(x为弧度)

    c(x): 余弦函数(x为弧度)

    a(x): 反正切函数(结果为弧度)

    l(x):  自然对数函数

    e(x): 以e为底的指数函数

    j(n,x):  贝赛尔函数


    此时。bc要加上 -l 參数 (此时。  scale 为20)


    计算 log1.5(2) (以 1.5为底,2的对数):

    $ echo "l(2)/l(1.5)" | bc -l
    1.70951129135145477699

    也能够用 awk命令:

    $ awk 'BEGIN {printf "%1l.9f
    ", log(2)/log(1.5)}'
    1.709511291
    

    6. 脚本函数编程:

    $ cat calc_prog 
    print "Enter a number A
    "; a = read()
    
    print "Enter another number B
    "; b = read()
    
    if (b == a) {
    
    print "B = A
    ";
    
    }
    
    if (a < b) {
    
    print "B > A
    ";
    
    }
    
    if (a > b) {
    
    print "B < A
    ";
    
    }

    $ bc -l calc_prog

    7. 脚本模拟计算器:

    $ cat calc.sh 
    #!/bin/bash
    
    bc << END
    scale=2
    $@
    END
    $ ./test.sh  1+2
    3
    

    參考:

    http://mylinuxbook.com/linux-command-line-calculator-bc-examples/

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Processing中PImage类和loadImage()、createImage()函数的相关解析
    基于Maxmspjitter的基础【pixel shader】绘制模板Patcher
    Processing多窗口程序范例(三)
    SpringBoot:基于注解的@CachePut
    Android开发—错误记录1:W/System.err: java.net.ConnectException: Connection refused
    自控力第一章-我要做,我不要,我想要:什么是意志力?为什么意志力至关重要
    超算结课小结
    linpack_2
    搭建Linpack
    汇编程序返回dos
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4757059.html
Copyright © 2020-2023  润新知