Bcbc: 為什麼
bc: 為什麼 ibase=16;肥胖=10;FF
返回FF而不是255?
我一直在使用
bc
二進製到十六進制、八進製到十進制等之間的數字轉換。在以下範例中,我嘗試將 16 進制(十六進制)數字轉換為二進制、八進制和十進制。
我對前 2 次嘗試沒有任何問題。
$ echo 'ibase=16; obase=2; FF' | bc 11111111 $ echo 'ibase=16; obase=8; FF' | bc 377
但是當我嘗試將基數 16(十六進制)數字轉換為基數 10(十進制)時,我得到了錯誤的答案。答案應該是
255
$ echo 'ibase=16; obase=10; FF' | bc FF
完成
ibase=16
後,進一步的輸入數字為十六進制,包括10,obase=10
其中表示十進制值 16。因此,要麼在之前設置 obase,要麼在之後設置,使用新的輸入基數(現在是十六進制):$ echo 'obase=10; ibase=16; FF' | bc 255 $ echo 'ibase=16; obase=A; FF' | bc 255