Linux中Shell的算数运算符和位运算符用法笔记


640?wx_fmt=png

1、算数运算符

算数运算符主要是加、减、乘、除、余、幂等常见的算术运算,以及加等、减等、乘等、除等、余等复合算术运算。

注意:Shell只支持整数运算,小数部分会舍去。一般情况下算术运行需要个let命令一起来使用。注意除法运算,除数不能为0

比如: 

#常规运算符

let 1+9 

let 20-10

let 2*5

let 9/3

let 10%4

let 2**3

#符合运算符

x=8 x+=2 变量结果为 10,其余用法类似

2、位运算符

位运算是基于内存中二进制数据的运算,也就是基于位的运算。常见的位运算有左移运算、右移运算、按位与、按位或、按位非、按位异或等运算

位元素的左移右移其实就是整数内存中的左右移动。左移<<,右移>>.

比如十进制4在内存中排列如下:00000100

用法:

let "value=4<<2"

echo ${value}

输出:16

let "value=4>>2"

echo ${value}

输出:1

按位与运算(&)是将两个整数写出二进制形式,然后同位置相比较,只有对于位置的二进制值都为1结果才是1,否则0.比如:8&4

00000100 #4

00001000 #8

00000000 #8&4结果 0

按位或运算(|),将两个整数写出二进制形式,然后同位置相比较,只要对应的位置有1则结果就为1。比如:8|4

00000100 #4

00001000 #8

00001100 #8|4结果12

按异或运算将两个整数写出二进制形式,只要对应的位置同为1或者同为1结果就是0,否则为1。比如:10^3 来说

00001010 #10

00000011 #3

00001001 #10^3 结果 9

按位非(~)有快捷的公式进行计算 ~a 值位"-(a+1)"

比如:let "value=~8"

echo ${value}

-9


原文地址:https://www.cnblogs.com/hgmyz/p/12351206.html