想必大家都清楚,计算机只能理解二进制格式,即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


相关内容