MYNUM=$1
ALLNUM=$2
while (( ALLNUM >0 ))
do
MYNUM=`echo "$MYNUM*2"|bc`
#echo $MYNUM
MYINT=${MYNUM%.*}
INTLEN=${#MYINT}
if [ $INTLEN -eq 0 ]; then
echo -n "0"
else
echo -n $MYINT
fi
MYDEC=${MYNUM#*.}
MYNUM="0."${MYDEC}
((ALLNUM-=1))
done
echo ""
ALLNUM=$2
while (( ALLNUM >0 ))
do
MYNUM=`echo "$MYNUM*2"|bc`
#echo $MYNUM
MYINT=${MYNUM%.*}
INTLEN=${#MYINT}
if [ $INTLEN -eq 0 ]; then
echo -n "0"
else
echo -n $MYINT
fi
MYDEC=${MYNUM#*.}
MYNUM="0."${MYDEC}
((ALLNUM-=1))
done
echo ""
第一个参数是小数
第二个参数是二进制的位数
test.sh 0.89 60
本文介绍了一个使用Shell脚本将浮点数转换为指定长度的二进制数的方法。该脚本接受两个参数:一个小数(如0.896)和一个整数(表示所需的二进制位数)。通过不断乘以2并截取整数部分来实现转换。
617

被折叠的 条评论
为什么被折叠?



