[bc] linux 的計算機bc 如何進行8進位、10進位、16進位等轉換

URL Link //n.sfs.tw/10679

2017-01-24 15:06:15 By 張○○

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

* 以上結果看似正確,其實只是歪打正著:

應注意

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