2009年10月25日 星期日

Ubuntu密技 - 十進位及十六進位轉換

「在命令列做算術」秘技中介紹了運用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 留言:

張貼留言