#!/bin/bash
if [ $# -ne 1 ];then
echo -e "Usage:$0 hexstring"
exit
fi
HEX_STR=$1
:<<!
if [ $((${#HEX_STR}%2)) -ne 0 ];then
echo -e "${#HEX_STR} length error"
exit
fi
!
HEX_STR=`echo "${HEX_STR}" | tr a-z A-Z`
for((i=0;i<${#HEX_STR};i++))
do
BIN_STR_TMP=`echo "obase=2;ibase=16;${HEX_STR:${i}:1}" | bc`
BIN_STR_TMP=`printf "%04s" ${BIN_STR_TMP} | sed "s/ /0/g"`
BIN_STR=`printf "%s%s" ${BIN_STR} ${BIN_STR_TMP}`
done
echo -e "${BIN_STR}"
for ((i=0;i<${#BIN_STR};i++))
do
CH=$((${BIN_STR:${i}:1}))
if [ ${CH} -eq 1 ];then
printf "[%03d]:%d\n" $((i+1)) ${BIN_STR:${i}:1}
fi
done
linux shell 位图16进制转二进制
最新推荐文章于 2024-04-02 17:40:47 发布