文章目录
1.计算10的阶乘
[root@localhost ~]# echo `seq -s "*" 10` = `seq -s "*" 10 | bc`
1*2*3*4*5*6*7*8*9*10 = 3628800
2.12,-13的原码,补码和反码
原码、反码、补码的概念
原码:最高位是符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。
反码:正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。
补码:正数的补码与原码一致,负数的补码是对原码按位取反加1,符号位不变
例如12
12=2^3+2^2 1100加上符号位
原码 01100
反码 01100
补码 01100
-13
13=1101
-13=-1101
原码 1 1101
反码 1 0010
补码 1 0011
3.计算 1+2的结果,并将值赋给变量data, 然后计算 data+10的值,赋值给data2(要求:分别使用(()), let, exp,bc和 $[]实现)
1、(())
[root@localhost ~]# ((data=1+2))
[root@localhost ~]# echo $data
3
[root@localhost ~]# ((data2=data+10))
[root@localhost ~]# echo $data2
13
[root@localhost ~]# ((data2=$data+10))
[root@localhost ~]# echo $data2
13
2、let
[root@localhost ~]# let data=1+2
[root@localhost ~]# echo $data
3
[root@localhost ~]# let data2=$data+10
[root@localhost ~]# echo $data2
13
[root@localhost ~]# let data2=data+10
[root@localhost ~]# echo $data2
13
3、expr
[root@localhost ~]# data=`expr 1 + 2`
[root@localhost ~]# echo $data
3
[root@localhost ~]# data2=`expr data + 10`
expr: non-integer argument
[root@localhost ~]# data2=`expr $data + 10`
[root@localhost ~]# echo $data2
13
4、bc
[root@localhost ~]# data=1+2 | bc
[root@localhost ~]# echo $data
3
[root@localhost ~]# data2=data+10 | bc
[root@localhost ~]# echo $data2
13
[root@localhost ~]# data2=$data+10 | bc
[root@localhost ~]# echo $data2
13
5、$[]
[root@localhost ~]# data=$[1+2]
[root@localhost ~]# echo $data
3
[root@localhost ~]# data2=$[data+10]
[root@localhost ~]# echo $data2
13
[root@localhost ~]# data2=$[$data+10]
[root@localhost ~]# echo $data2
13