bc 對於進位轉換很容易,以下是簡單的範例:
進到 bc
$ bc -l
查看目前輸入輸出進位
ibase
10
obase
10
歸0為10進位
ibase=10
obase=10
或直接quit再進去
輸入10進位轉成16進位
ibase=10 <== 輸入位
obase=16 <== 輸出位
10 <== 輸入10,按ENTER
A
100 <== 輸入100按ENTER
64
1000 <== 輸入1000按ENTER
3E8
obase=16 <== 輸出位
10 <== 輸入10,按ENTER
A
100 <== 輸入100按ENTER
64
1000 <== 輸入1000按ENTER
3E8
* 以上結果看似正確,其實只是歪打正著:
應注意
1. ibase 和 obase 是特殊變數,值應為 2-16
2. ibase設定值後,後面輸入的數值就會視為 ibase 設定的進位,所有的輸出都會以obase進位的設定來顯示,所以要小心。
3. 先寫obase,以免ibase先設定影響obase
4. 隨時用ibase/obase去查看進位,其數值會用目前的obase表示,有時會混亂,當搞混後就quit出來再進去重設即可
輸入16 進位轉成 10 進位
obase=10
ibase=16
FF
255
3f66 <== 只能用大寫的A-F
(standard_in) 9: syntax error
3F 66 <== 不能空一格
(standard_in) 5: syntax error
3F66
16230
輸入16 進位轉成 2 進位
obase=2
ibase=16
obase
10
ibase
10000
FF
11111111
12345
10010001101000101
原文 2011-02-13 02:02:51