「在命令列做算術」秘技中介紹了運用bc套件來撰寫腳本及執行簡單的四則運算。其實,bc命令可提供的不止如此,其中之一是10進位數字與16進位數字的轉換。先在命令列鍵入bc以啟始程序,再輸入obase=16,然後輸入任何需要轉換的數字。
若希望由16進位數字轉換為10進位數字,則自命令列鍵入bc以啟始程序,然後輸入ibase=16,再輸入任何需要轉換的數字。注意:A、B、C、D、E、F必須大寫輸入。
完成所有轉換後,按Ctrl+d組合鍵退出bc。
當然使用者也可以建立腳本文件,自訂10進位數字轉換至16進位數字的命令。先以Gedit開啟新文件dec-to-hex (這也是自定命令的名稱),然後鍵入如下內容:
#!/bin/bash
# Take hex input and run it through bc for decimal output
option='obase=16;'
convert=${option}$@
echo $convert|bc
儲存檔案後關閉Gedit。再將此腳本設定為可執行檔,再複製至/usr/bin文件夾內,其步驟如下:
$ chmod +x dec-to-hex
$ sudo mv dec-to-hex /usr/bin/
然後就可以測試此自定命令,例如:
$ dec-to-hex 255
若要自訂16進位數字轉換至10進位數字的命令,先以Gedit開啟新文件hex-to-dec (這也是自定命令的名稱),依上述方式,唯一不同的是第三行以option=’ibase=16;’代替,第二行的說明文字也可順便修正。然後就可以測試此自定命令,例如:
$ hex-to-dec FFC21A
當然,Ubuntu內建的「計算機」也可以執行不同進位數字之間的轉換。可由Applications (正體中文環境稱為「應用程式」) → Accessories (正體中文環境稱為「附屬應用程式」)選單呼叫,在View (正體中文環境稱為「檢視」)選單中選擇Scientific (正體中文環境稱為「科學計算模式」),即可圈選不同的進位法以進行轉換。
密技以Ubuntu 8.04長期支援版本(Hardy Heron)測試,有可能不適用於新版本,或需做配合微調。
0 留言:
張貼留言