awk怎么实现将"a36b"这样的十六进制字符转成十进制数
答案:2 悬赏:50 手机版
解决时间 2021-02-15 15:12
- 提问者网友:浮克旳回音
- 2021-02-15 07:28
awk怎么实现将"a36b"这样的十六进制字符转成十进制数
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-02-15 08:32
echo "a36b"|awk 'BEGIN{ hextodec["a"]=10;hextodec["b"]=11;hextodec["c"]=12;hextodec["d"]=13
hextodec["e"]=14;hextodec["f"]=15;hextodec["0"]=0;hextodec["1"]=1;
hextodec["2"]=2;hextodec["3"]=3;hextodec["4"]=4;hextodec["5"]=5
hextodec["6"]=6;hextodec["7"]=7;hextodec["8"]=8;hextodec["9"]=9
}
{
string=tolower($0)
for(i=1;i<=length(string);i++)
{
c=substr(string,i,1)
if(c in hextodec)
result=result*16+hextodec[c]
else
{
print "不是合法的十六进制数"
exit 1
}
}
printf "%s 是十进制数%d\n" ,$0, result
} '
hextodec["e"]=14;hextodec["f"]=15;hextodec["0"]=0;hextodec["1"]=1;
hextodec["2"]=2;hextodec["3"]=3;hextodec["4"]=4;hextodec["5"]=5
hextodec["6"]=6;hextodec["7"]=7;hextodec["8"]=8;hextodec["9"]=9
}
{
string=tolower($0)
for(i=1;i<=length(string);i++)
{
c=substr(string,i,1)
if(c in hextodec)
result=result*16+hextodec[c]
else
{
print "不是合法的十六进制数"
exit 1
}
}
printf "%s 是十进制数%d\n" ,$0, result
} '
全部回答
- 1楼网友:鸠书
- 2021-02-15 09:30
期待看到有用的回答!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯