システム:
- Ubuntu 22.04.3 LTS
- GNU bash、バージョン 5.1.16(1)-リリース(x86_64-pc-linux-gnu)
- 紀元前1.07.1
観察する:
ibase
そして設定されていませんobase
。
echo "A0" | bc
90
echo "B0" | bc
90
echo "X0" | bc
90
質問:基本的にbc
アルファベット文字が9
sと解釈されるのはなぜですか?ここでエラーメッセージを表示する方が悪いのはなぜですか?
答え1
man bc
GNUシステム(GNU bc
1.07以降)から:
単純な式は定数だけです。
bc
変数で指定された現在の入力基数を使用して定数を内部10進数に変換しますibase
。 (関数に例外があります。)の有効な値はibase
2〜36です。 (16より大きいベースは拡張です。)
この範囲外の値をibase
2または36個の結果値に割り当てます。入力番号には0~9文字とAZ文字を含めることができます。 (注:大文字でなければなりません。小文字は変数名です。)の値に関係なく、単位番号は常にその数値の値を持ちますibase
。 (つまり、A = 10.)複数桁、値以上のすべてのbc
入力数を変更します。これにより、数字は常に入力ベースで最大3桁の数字になります。ibase
ibase-1
ZZZ
(強調します。)