awk怎么实现16进制相加
答案:2 悬赏:0 手机版
解决时间 2021-02-25 21:08
- 提问者网友:了了无期
- 2021-02-24 21:54
awk怎么实现16进制相加
最佳答案
- 五星知识达人网友:西风乍起
- 2021-02-24 23:21
情形一: echo "33" | awk '{print strtonum("0x"$0)}' 情形二: echo "335x" | awk '{a=$0"FFFF";print strtonum("0x"substr(a,1,2))}'
全部回答
- 1楼网友:山河有幸埋战骨
- 2021-02-25 00: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
} '
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯