本机十进制到二进制转换

时间:2015-03-29 17:13:51

标签: bash binary decimal

有没有办法在Bash中本地计算十进制数的二进制表示,而不需要使用bc之类的外部程序?

实施例: 假设我在基数10中有5:我想在基数2中获得101

为什么使用bc不是一个选项:循环性能。

1 个答案:

答案 0 :(得分:1)

使用bash的算术运算符而不是查找表。例如

#!/bin/bash

d2b() {
    local bits=
    local num=$1
    while [[ $num != 0 ]]
    do
            if (( $num & 1 ))
            then
                    bits="1$bits"
            else
                    bits="0$bits"
            fi
            let num=$(($num >> 1))
    done
    echo ${bits:=0}
}

for n in $*
do
    d2b $n
done