【转载】Linux下任意精度的计算器—bc

  最近啃组成原理的时候发现Windows下的计算器进行进制转换的时候居然不能用小数点,于是想到了这个神器:bc 本文自网上的文章进行整理记录,仅摘录部分自己要用到的功能,备用,详细用法请于原文查看。
以下内容来自@菜鸟教程与@vanishfan,仅摘录部分自己要用到的功能备用,详细用法请于原文查看,侵删。

介绍

  bc是一个较为完整,提供了完备的类似C的编程语法的计算器,可以在交互式界面、文本或管道的方式方便的进行一些逻辑运算。支持多进制转换,任意精度调整,打印控制,函数支持,逻辑控制等。

交互模式

数字

  shell下输入bc进入交互模式,默认输入输出进制均为10进制,数字有2个属性 长度(length)和小数点后精度(scale), length值数字有效数字的长度,scale是值小数点后的长度。
  关于数字,当使用十六进制时,英文ABCDEF必须大写,大于16进制的则都用XX的十进制数字代表一位,如C=12

变量

  计算表达式的时候可以用变量,变量名为小写字母开头后面可以跟_,1,a。
变量分两种:
普通变量: a=4;a 返回4
数组变量: a[1]=1;a[3]=3;a[1];a[2];a[3] 返回1 0 3
另外有4个特殊的变量,他们有着特殊的意义,不能当做普通变量用,如下:

  • scale=10; 设置之后的scale为10,默认为0(即整数除法会返回整数)
  • obase=16;ibase=16; 设置输入和输出都为16进制,默认值为10 (注意:为10时可不设置ibase obase的值,obase要尽量放在ibase前,因为ibase设置后,后面的数字都是以ibase的进制来换算的)
  • last,是指上一次返回出来的数字