Shell進位轉換小結

來源:互聯網
上載者:User

I-III部分只涉及bash……

關於其他,請參看IV部分…… I: 利用obase, ibase和bc:         ibase是輸入數位進位,而obase就是輸出數位進位了。很好記,i是input,o是output。
注意,16進位數位F要大寫, 否則,結果為0,是錯誤的。

舉例說明:

10進位轉2進位:


10進位轉16進位: (如果輸入是10進位的話,ibase可省略)


16進位轉2進位:


16進位轉10進位:(此時,只需指定ibase即可)


II: 利用echo的base#:

$((base#number))
#其中number是欲轉化的數,base是其進位數.(base也可省略,number預設是十進位,如果以0,或0x則分別是八進位和十六進位). #echo $((012)) #8進位,結果為10    #echo $((0xFF)) #16進位,結果為255    #echo $((0xEF))    #echo $((0xFFFF))    #echo $((2#1101011))    #echo $((2#11111111)) #2進位,結果為255    #echo $((8#255)) #8進位,結果為173    #echo $((8#377)) #16進位,結果為217    #echo $((16#D9))    #echo $((16#FF)) #有base不用0x,不然報錯。8進位沒問題!  

另外這個用法還可以擴充:

$((base#number^base#Base1)) #可以理解為number和Base1這兩者按照base進位做了個異或操作.

比如: #base=1f   #Base1=ff   #echo $((16#$base^16#$Base1))    224    #這個例子就表示,base(1f)和Base1(ff)按照16進位做了異或操作(結果為e0,即224)   III: 例子:

Question:

現在想對兩個位元據進行 或 運算, 如
a= 1101
b= 1000
c= a|b
以二進位格式輸出c = 1101 ???

Answer: [Bob@hzling08:~]-No.96-$ a=1101; b=1000   [Bob@hzling08:~]-No.97-$ d=`echo $(($((2#$a))|$((2#$b)))) | bc`    [Bob@hzling08:~]-No.98-$ echo "obase=2; $d" | bc                  1101  

其實可以寫成一句: [Bob@hzling08:~]-No.99-$ echo "obase=2;$(($((2#$a))|$((2#$b))))" | bc    1101   IV: 補充:

1. 利用awk: #十六進位轉十進位    echo 0x2A | gawk '$1=strtonum($1)'       #科學計數法轉十進位    printf "%f\n" 3.1188622400e+06    echo 3.1188622400e+06 | awk '{printf("%f\n",$0)}'       #科學計數法轉十進位並保留兩位小數    echo 3.1188622400e+06 | awk '{printf("%.2f\n",$0)}'       #科學計數法轉十進位並取整    printf "%.f\n" 3.1188622400e+06    echo 3.1188622400e+06 | awk '{printf("%d\n",$0)}'       #科學計數法轉十進位並四捨五入取整    echo 3.1188622400e+06 | awk '{printf("%d\n",

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.