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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 4258 | 回復(fù): 15
打印 上一主題 下一主題

[數(shù)值計(jì)算] 求助一個(gè)腳本的簡(jiǎn)化 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-06-03 11:15 |只看該作者 |倒序?yàn)g覽
本帖最后由 zhjwlgh01 于 2016-06-03 11:15 編輯

求大神幫忙簡(jiǎn)化一個(gè)腳本,我寫(xiě)的實(shí)在太丑了。。。這個(gè)是關(guān)于數(shù)值轉(zhuǎn)化的,例如有一個(gè)數(shù)字是  0,0,255, 先將三個(gè)數(shù)字轉(zhuǎn)成二進(jìn)制的,不足八位的補(bǔ)成八位,得到00000000,00000000,11111111。 然后第一個(gè)數(shù)取高五位,第二個(gè)取高六位,第三個(gè)取高五位,得到00000,000000,11111. 再拼接在一起,得到0000000000011111. 最后分成4份,每份4個(gè)數(shù),再轉(zhuǎn)成十六進(jìn)制的。我寫(xiě)的腳本如下,請(qǐng)大神幫忙修改的簡(jiǎn)單一點(diǎn)。
#!/bin/sh

Usage()
{
        echo "Error Usage"
        echo "./565_color_key.sh ./1.txt"
        echo ""
}

if [ ! -e $1 ]; then
        Usage
fi
#count the number of rows
CH=` awk '{print NR}' $1 | tail -n1`


for ((i=1; i<$CH ; i=$i+1))
do
        A1=`cat $1 | sed -n "$i"p | awk -F "," '{print $1}'`
        A2=`cat $1 | sed -n "$i"p | awk -F "," '{print $2}'`
        A3=`cat $1 | sed -n "$i"p | awk -F "," '{print $3}'`
        B1=`echo "obase=2;$A1"|bc`
        B2=`echo "obase=2;$A2"|bc`
        B3=`echo "obase=2;$A3"|bc`
        C1=`echo $B1 | awk '{print length($0)}'`
        C2=`echo $B2 | awk '{print length($0)}'`
        C3=`echo $B3 | awk '{print length($0)}'`
        if [ $C1 -eq 1 ]; then
                D1=`echo 0000000$B1 | cut -b 1-5`
        elif [ $C1 -eq 2 ]; then
                D1=`echo 000000$B1 | cut -b 1-5`
        elif [ $C1 -eq 3 ]; then
                D1=`echo 00000$B1 | cut -b 1-5`
        elif [ $C1 -eq 4 ]; then
                D1=`echo 0000$B1 | cut -b 1-5`
        elif [ $C1 -eq 5 ]; then
                D1=`echo 000$B1 | cut -b 1-5`
        elif [ $C1 -eq 6 ]; then
                D1=`echo 00$B1 | cut -b 1-5`
        elif [ $C1 -eq 7 ]; then
                D1=`echo 0$B1 | cut -b 1-5`
        else
                D1=`echo $B1 | cut -b 1-5`
        fi

        if [ $C2 -eq 1 ]; then
                D2=`echo 0000000$B2 | cut -b 1-6`
        elif [ $C2 -eq 2 ]; then
                D2=`echo 000000$B2 | cut -b 1-6`
        elif [ $C2 -eq 3 ]; then
                D2=`echo 00000$B2 | cut -b 1-6`
        elif [ $C2 -eq 4 ]; then
                D2=`echo 0000$B2 | cut -b 1-6`
        elif [ $C2 -eq 5 ]; then
                D2=`echo 000$B2 | cut -b 1-6`
        elif [ $C2 -eq 6 ]; then
                D2=`echo 00$B2 | cut -b 1-6`
        elif [ $C2 -eq 7 ]; then
                D2=`echo 0$B2 | cut -b 1-6`
        else
                D2=`echo $B2 | cut -b 1-6`
        fi

        if [ $C3 -eq 1 ]; then
                D3=`echo 0000000$B3 | cut -b 1-5`
        elif [ $C3 -eq 2 ]; then
                D3=`echo 000000$B3 | cut -b 1-5`
        elif [ $C3 -eq 3 ]; then
                D3=`echo 00000$B3 | cut -b 1-5`
        elif [ $C3 -eq 4 ]; then
                D3=`echo 0000$B3 | cut -b 1-5`
        elif [ $C3 -eq 5 ]; then
                D3=`echo 000$B3 | cut -b 1-5`
        elif [ $C3 -eq 6 ]; then
                D3=`echo 00$B3 | cut -b 1-5`
        elif [ $C3 -eq 7 ]; then
                D3=`echo 0$B3 | cut -b 1-5`
        else
                D3=`echo $B3 | cut -b 1-5`
        fi       

        E=$D1$D2$D3
        F1=`echo $E | cut -b 1-4`
        G1=`echo "obase=16; ibase=2; $F1" | bc`
        F2=`echo $E | cut -b 5-8`
        G2=`echo "obase=16; ibase=2; $F2" | bc`
        F3=`echo $E | cut -b 9-12`
        G3=`echo "obase=16; ibase=2; $F3" | bc`
        F4=`echo $E | cut -b 13-16`
        G4=`echo "obase=16; ibase=2; $F4" | bc`
        H=0x$G1$G2$G3$G4
       
        echo $H >> ./565_color_key.txt
done

論壇徽章:
2
luobin
日期:2016-06-17 17:46:36lufei
日期:2016-06-17 17:49:16
2 [報(bào)告]
發(fā)表于 2016-06-03 11:27 |只看該作者
例如有一個(gè)數(shù)字是  0,0,255  這句話怎么理解?這里不是三個(gè)數(shù)嗎?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2016-06-03 11:29 |只看該作者
不好意思,是有一行,不是有一個(gè)數(shù)字。。。我就是需要把這三個(gè)數(shù)字最終處理成一個(gè)十六進(jìn)制的數(shù)

論壇徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16賽季CBA聯(lián)賽之北京
日期:2016-07-06 15:42:0715-16賽季CBA聯(lián)賽之同曦
日期:2016-06-12 10:38:0915-16賽季CBA聯(lián)賽之佛山
日期:2016-05-27 11:54:56黃金圣斗士
日期:2015-12-02 11:44:35白銀圣斗士
日期:2015-11-25 14:32:43白銀圣斗士
日期:2015-11-23 12:53:352015亞冠之布里斯班獅吼
日期:2015-10-21 16:55:482015亞冠之首爾
日期:2015-09-01 16:46:052015亞冠之德黑蘭石油
日期:2015-08-31 11:39:192015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-08-28 21:06:5315-16賽季CBA聯(lián)賽之廣東
日期:2016-07-12 14:58:53
4 [報(bào)告]
發(fā)表于 2016-06-03 11:41 |只看該作者
本帖最后由 reyleon 于 2016-06-03 11:43 編輯
  1. #!/bin/bash

  2. if [ $# -ne 3 ];then
  3.     echo "Usage: sh $0 [num1] [num2] [num3]"
  4.     exit 1
  5. fi

  6. to2() {
  7.     printf "%08d" $(echo "obase=2;$1" | bc )
  8. }

  9. to16() {
  10.     echo "obase=16;ibase=2;$1" | bc
  11. }

  12. a1=$(to2 $1)
  13. a2=$(to2 $2)
  14. a3=$(to2 $3)

  15. rs=${a1:0:5}${a2:0:6}${a3:0:5}
  16. for n in $(echo ${rs} | fold -4 );do
  17.     s+=$(to16 $n)
  18. done

  19. echo $s
復(fù)制代碼

論壇徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-06-12 06:20:002016科比退役紀(jì)念章
日期:2016-05-31 15:47:20CU十四周年紀(jì)念徽章
日期:2016-05-27 12:24:562015年亞洲杯之阿曼
日期:2015-05-03 21:01:352015年辭舊歲徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-08-11 06:20:00
5 [報(bào)告]
發(fā)表于 2016-06-03 11:50 |只看該作者
本帖最后由 liion631818 于 2016-06-03 12:38 編輯
  1. num1=$(printf "%08d\n" `echo "obase=2;0"|bc`)
  2. num2=$(printf "%08d\n" `echo "obase=2;0"|bc`)
  3. num3=$(printf "%08d\n" `echo "obase=2;255"|bc`)

  4. echo ${num1:0:5}${num2:0:6}${num3:0:5}
  5. echo "obase=16;ibase=2;${num1:0:5}${num2:0:6}${num3:0:5}" | bc
  6. printf "%04X\n" $((2#${num1:0:5}${num2:0:6}${num3:0:5}))

復(fù)制代碼
回復(fù) 1# zhjwlgh01


   

論壇徽章:
145
技術(shù)圖書(shū)徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術(shù)圖書(shū)徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [報(bào)告]
發(fā)表于 2016-06-03 12:03 |只看該作者
回復(fù) 1# zhjwlgh01


>> 例如有一個(gè)數(shù)字是  0,0,255, 先將三個(gè)數(shù)字轉(zhuǎn)成二進(jìn)制的 ... 得到00000000,00000000,11111111。
>> 然后第一個(gè)數(shù)取高五位,第二個(gè)取高六位,第三個(gè)取高五位,得到00000,000000,11111. 再拼接在一起,
>> 得到0000000000011111. 最后分成4份,每份4個(gè)數(shù),再轉(zhuǎn)成十六進(jìn)制的。

$ echo 0 0 255 | awk 'function gn(s,n){return(substr(s,1,n))}function n2b(x, n,r){for(n=1;n<=8;++n){r=x%2 r;x=int(x/2)}return(r)}function b2n(x, n,r){for(n=1;n<=length(x);++n)r=2*r+substr(x,n,1);return(r)}{hex=sprintf("%04X",b2n(gn(n2b($1),5) gn(n2b($2),6) gn(n2b($3),5)));print hex}'
001F

   

評(píng)分

參與人數(shù) 1信譽(yù)積分 +10 收起 理由
sunzhiguolu + 10 很給力!

查看全部評(píng)分

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2016-06-03 12:24 |只看該作者
果然這邊大神多,非常感謝~~

論壇徽章:
307
程序設(shè)計(jì)版塊每周發(fā)帖之星
日期:2016-04-08 00:41:33操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-09-02 06:20:00每日論壇發(fā)貼之星
日期:2015-09-02 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-04 06:20:00每日論壇發(fā)貼之星
日期:2015-09-04 06:20:00每周論壇發(fā)貼之星
日期:2015-09-06 22:22:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-09 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-19 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-20 06:20:00每日論壇發(fā)貼之星
日期:2015-09-20 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-22 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-24 06:20:00
8 [報(bào)告]
發(fā)表于 2016-06-03 12:27 |只看該作者
別人搞不了的問(wèn)題, 依然可以搞定, 這才是大神. 向各位大神致敬!!!

求職 : 技術(shù)支持/維
論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2016-06-03 14:14 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
1
數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-03-07 06:20:00
10 [報(bào)告]
發(fā)表于 2016-06-03 14:24 |只看該作者
看完上面大神的腳本,突然覺(jué)得自己要改行了。各種奇技淫巧!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP