Command-Line
使用 bc 從二進制轉換為十六進制的困難
我閱讀瞭如何使用命令行計算器和 HERE 文件進行計算,但是我沒有得到我期望的結果,也找不到我的錯誤,我在 shell 中所做的是:
bc << HERE >ibase=2 >obase=16 >1001 >HERE 100
我希望得到 9 作為結果,因為二進制 1001 是十六進制 9,但我得到了 100。
因為您
ibase=2
首先設置,所以您需要使用obase=10000
:$ echo 'ibase=2; obase=10000; 1001' | bc 9
因為您是先設置輸入基數,然後當您設置輸出基數時,16 將根據輸入基數 (2) 進行解釋。在這種情況下,似乎
6
in16
被簡單地解釋為二進制1
位,因此輸出基數設置為二進制 11 或十進制 3。要解決此問題,您可以在設置輸入基數之前設置輸出基數:
echo 'obase=16; ibase=2; 1001' | bc