3.逻辑运算 - wolai 笔记

1.位运算

$((...))支持以下的二进制位运算符。
  • <<:位左移运算,把一个数字的所有位向左移动指定的位。
  • >>:位右移运算,把一个数字的所有位向右移动指定的位。
  • &:位的“与”运算,对两个数字的所有位执行一个AND操作。
  • |:位的“或”运算,对两个数字的所有位执行一个OR操作。
  • ~:位的“否”运算,对一个数字的所有位取反。
  • ^:位的异或运算(exclusive or),对两个数字的所有位执行一个异或操作。
下面是右移运算符>>的例子。
$ echo $((16>>2))
4
下面是左移运算符<<的例子。
$ echo $((16<<2))
64
下面是17(二进制10001)和3(二进制11)的各种二进制运算的结果。
$ echo $((17&3))
1
$ echo $((17|3))
19
$ echo $((17^3))
18

2.逻辑运算

$((...))支持以下的逻辑运算符。
  • <:小于
  • >:大于
  • <=:小于或相等
  • >=:大于或相等
  • ==:相等
  • !=:不相等
  • &&:逻辑与
  • ||:逻辑或
  • !:逻辑否
  • expr1?expr2:expr3:三元条件运算符。若表达式expr1的计算结果为非零值(算术真),则执行表达式expr2,否则执行表达式expr3
如果逻辑表达式为真,返回1,否则返回0
$ echo $((3 > 2))
1
$ echo $(( (3 > 2) || (4 <= 1) ))
1
三元运算符执行一个单独的逻辑测试。它用起来类似于if/then/else语句。
$ a=0
$ echo $((a<1 ? 1 : 0))
1
$ echo $((a>1 ? 1 : 0))
0
上面例子中,第一个表达式为真时,返回第二个表达式的值,否则返回第三个表达式的值。

Comment
avatar
Dongnian
A salty fish swimming in the sea of deep learning!
Follow Me
Announcement
Welcome to My Personal Blog!
If Not, Please Visit Gitee Mirror.