linux Shell编程中常用的数学计算方法:expr,let,bc及其他。哪个效率更高一点?

linux Shell编程中常用的数学计算方法:expr,let,bc及其他。哪个效率更高一点?,第1张

从效率来说let==$(()) >expr >bc,这个是绝对的。

let和$(())运行是内建命令,使用相同的算法。

expr和bc是外部程序,expr的体积几乎等于bc的1/3,执行一次装入内存所消耗的时间就不一样。

运算能力来说,自然bc排第一位。

其实还有awk,能更好的执行基本运算、汇总、求平均等更复杂的。而且还可以使用数组、哈希表。

可以考虑使用$(())进行数学运算

例如:

[WtbmWdgz@localhost 桌面]$ a=5b=3

[WtbmWdgz@localhost 桌面]$ echo $((a*7-b))

32

这个可以执行加减乘除和取模(就是取余数)的数学计算还有逻辑运算的与、或、非、还有异或运算

与运算是两个条件同时成立结果才成立。或运算是两个条件有一个成立结果就成立。非运算只需要一个条件。条件成立,结果就是否定。条件不成立 ,结果就肯定。比如:下雨就不出门,不下雨就出门。异或也叫半加。它是 两个条件相同,结果是0,就是否定,两条件不同,结果才是肯定或者是1

bc看上去是连续的字母,其实是骂人的脏话,是白痴的意思,是网络用语,在腾讯\MSN中常见BC还有公元前的意思.BCBitComet的简称 BC加拿大不列颠哥伦比亚省简称BC省 BC 网络语言,表示“棒槌”B代表Before,在...之前的意思C代表Christ,基督的意思.西方以基督出生的年份为公元1年,所以在此之前就叫公元前.所以习惯上常用BC或B.C.代表公元前. BC: Business Customer ,商业(企业)客户。BC:Boston College的缩写LINUX命令bc 命令用途为任意精度算术语言提供解释器。语法bc [ -c ] [ -l ] [ File ... ]描述bc 命令是一个提供任意精度算术的交互式进程。bc 命令首先读取由 File 参数指定的任一输入文件,然后读取标准输入。输入文件必须是包含 bc 命令能读取并执行的命令序列、语句或函数定义的文本文件。bc 命令是 dc 命令的预处理程序。除非指定 -c(仅编译)标志,否则它自动调用 dc 命令。如果指定了 -c 标志,则来自 bc 命令的输出转到标准输出。bc 命令允许您来指定十进制、八进制或十六进制的运算的输入和输出进制。缺省值为十进制。此命令还提供了十进制点符号的比例缩放规定。bc 命令始终使用 .(点号)来表示基数点,而不考虑指定为当前语言环境部分的任何十进制点字符。bc 命令的语法类似于 C 语言的语法。可以使用 bc 命令通过将 ibase 关键字指定给输入进制而 obase 关键字指定给输出进制来在各进制间转化。2 到 16 的范围对于 ibase 关键字是有效的。obase 关键字的范围从 2 直到 /usr/include/sys/limits.h 文件中定义的 BC_BASE_MAX 值设置的限制。不考虑 ibase 和 obase 的设置,bc 命令将字母 A 到 F 识别为其十六进制值 10 到 15。bc 命令的输出由读取程序控制。输出由包含所有执行的未赋值表达式的值的一行或多行构成。输出的基数和精度由 obase 和 scale 关键字的值控制。有关 bc 命令处理来自源文件信息的方式的进一步的信息在以下各节中得到描述:* 语法* 词法约定* 标识符和运算符* 表达式* 语句* 函数调用* -I 数学库中的函数


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/8483675.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存