2

今日、私は'bc' linuxコマンドを見つけ、outputbase10で計算すると奇妙な動作を見つけました。

echo "ibase=16;obase=9;AFBE" | bc
67638

echo "ibase=16;obase=11;AFBE" | bc
09 02 11 08

echo "ibase=16;obase=10;AFBE" | bc
AFBE

コマンド1と2は正しいですが、3番目のコマンドは単に入力値を出力します。

echo "ibase=16;AFBE" | bc
44990

正しい結果が得られます。

この振る舞いに何か理由はありますか?

4

2 に答える 2

2

あなたはこれに捕まる最初の人ではありません。どうやらあなたはobase ibaseに設定する必要があります:

echo "obase=10;ibase=16;AFBE" | bc
44990
于 2013-01-26T21:35:41.483 に答える
2

明らかに、それが読むときにbcあなたを使用します:それが常に「と同じ」を意味する理由です。ibaseobaseobase=10ibase

最新の例では、obase=10(値を10進数の16に設定する)指定しないためobase、デフォルト(10進数の10)のままになります。

于 2013-01-26T21:35:42.600 に答える