亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請問十六進制轉(zhuǎn)十進制,有沒有辦法替代strtonum [打印本頁]

作者: conall    時間: 2016-07-28 17:09
標(biāo)題: 請問十六進制轉(zhuǎn)十進制,有沒有辦法替代strtonum
十六進制轉(zhuǎn)十進制:
echo '12af' | awk '{print strtonum("0x"$0)}'
4783
但在我的服務(wù)器shell環(huán)境,執(zhí)行結(jié)果為0x12af
請問各位,有沒有辦法替代strtonum?
作者: reyleon    時間: 2016-07-28 17:30
$ echo $((16#12af))
4783

作者: conall    時間: 2016-07-28 17:36
回復(fù) 2# reyleon


    whyunwei@hbwossadmin02> echo $((16#12af))
Illegal variable name.
作者: reyleon    時間: 2016-07-28 17:42
回復(fù) 3# conall


    目測你不是使用的bash shell 了. 用bc命令試試吧

$ echo "obase=10;ibase=16;12AF" | bc
4783

PS:
1. bc 命令可能需要安裝
2. 數(shù)字如果是16禁止, 字母要大寫
作者: conall    時間: 2016-07-28 17:51
回復(fù) 4# reyleon


    謝謝!兩個都可以,確實與運行環(huán)境有關(guān)。
whyunwei@hbwossadmin02> echo "obase=10;ibase=16;12AF" | bc
4783
whyunwei@hbwossadmin02> bash
whyunwei@hbwossadmin02:~/ydwg/config$ echo $((16#12af))
4783

想請問,下面這種方式,該怎么改?
awk -F";" '{OFS=";";print strtonum("0x"$1)+strtonum("0x"$2)+strtonum("0x"$3)+strtonum("0x"$4)+strtonum("0x"$5)+strtonum("0x"$6)+strtonum("0x"$7)+strtonum("0x"$}'
作者: sunzhiguolu    時間: 2016-07-28 18:11
  1. echo '12af'|perl -ne 'printf("%d\n",hex($_))'
復(fù)制代碼
4783
作者: jason680    時間: 2016-07-29 00:29
回復(fù) 5# conall

結(jié)果為何?

$ echo '1 c' | awk '{print strtonum("0x"$1)+strtonum("0x"$2)}'
13

   
作者: conall    時間: 2016-07-29 08:21
回復(fù) 7# jason680


    whoss@hubei3> echo '1 c' | awk '{print strtonum("0x"$1)+strtonum("0x"$2)}'
00xc
作者: jason680    時間: 2016-07-29 10:26
回復(fù) 8# conall

try this way

$ echo '1 c 3' | awk 'BEGIN{t=split("0123456789abcdef",a,"");for(n=1;n<=t;++n)H[a[n]]=n-1}function hex(x, n,t,s){t=length(x);for(n=1;n<=t;++n)s=s*16+H[substr(x,n,1)];return(s)}function strtonumx(x){if(sub(/^0x/,"",x))return(hex(x));return(x)}{print strtonumx("0x"$1)+strtonumx("0x"$2)+strtonumx($3)}'
16

作者: conall    時間: 2016-07-29 11:14
回復(fù) 9# jason680


    whoss@hubei3> cat 2.txt
020;020;020;020;020;020;020;020
020;020;020;020;020;020;020;020
020;020;020;020;020;020;020;020
020;020;020;020;020;020;020;020
020;020;020;020;020;020;020;020
020;020;020;020;020;020;020;020
020;020;020;020;020;020;020;020
100;000;000;;;;;
whoss@hubei3> nawk 'BEGIN{t=split("0123456789abcdef",a,"");for(n=1;n<=t;++n)H[a[n]]=n-1}function hex(x, n,t,s){t=length(x);for(n=1;n<=t;++n)s=s*16+H[substr(x,n,1)];return(s)}function strtonumx(x){if(sub(/^0x/,"",x))return(hex(x));return(x)}{print strtonumx("0x"$1)+strtonumx("0x"$2)+strtonumx($3)}' 2.txt
0
0
0
0
0
0
0
0
作者: conall    時間: 2016-07-29 11:16
回復(fù) 10# conall


   謝謝,太牛了
whoss@hubei3> nawk -F";" 'BEGIN{t=split("0123456789abcdef",a,"");for(n=1;n<=t;++n)H[a[n]]=n-1}function hex(x, n,t,s){t=length(x);for(n=1;n<=t;++n)s=s*16+H[substr(x,n,1)];return(s)}function strtonumx(x){if(sub(/^0x/,"",x))return(hex(x));return(x)}{print strtonumx("0x"$1)+strtonumx("0x"$2)+strtonumx($3)}' 2.txt
20
20
20
20
20
20
20
0
這個,這個,要好好消化一下
作者: jason680    時間: 2016-07-29 11:38
本帖最后由 jason680 于 2016-07-29 11:47 編輯

回復(fù) 11# conall

nawk ??!!   ==> OS: solaris

please use /usr/xpg4/bin/awk on solaris OS
   

$ awk --version
GNU Awk 3.1.8
...

or using Perl and easy to do that

$ echo '1 c 3' | perl -lane '{print hex($F[0])+hex($F[1])+$F[2]}'
16

作者: expert1    時間: 2016-07-30 11:44
printf函數(shù)有嗎,這個就可以了。




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2