Linux Shell脚本语言与数学表达式(1)(2)
想必大家都清楚,计算机只能理解二进制格式,即0和1,大多数人都喜欢学习十进制与二进制的转换。不如为这个复杂的计算编写一个简单的脚本吧。
脚本2:DecimalToBinary.sh
#!/bin/bash for ((i=32;i>=0;i--)); do r=$(( 2**$i)) Probablity+=( $r ) done [[ $# -eq 0 ]] &echo -en "Decimal\t\tBinary\n" for input_int in $@; do s=0 test ${#input_int} -gt 11 &printf "%-10s\t" "$input_int" for n in ${Probablity[@]}; do if [[ $input_int -lt ${n} ]]; then [[ $s = 1 ]] && printf "%d" 0 else printf "%d" 1 ; s=1 input_int=$(( $input_int - ${n} )) fi done echo -e done
示例输出
[root@tecmint ~]# chmod 755 Decimal2Binary.sh [root@tecmint ~]# ./Decimal2Binary.sh 1121 DecimalBinary 1121 10001100001
注意:上面的脚本在运行时接受输入,这对我们来说无疑是个好帮手。
下载DecimalToBinary.sh
其实,内置的“bc”命令仅用简单的一行代码就能将十进制数转成二进制。运行如下脚本:
[root@tecmint ~]# echo "obase=2; NUM" | bc
NUM是你想要转换的十进制数,比如,
[root@tecmint ~]# echo "obase=2; 121" | bc 1111001
评论暂时关闭