bc: `ibase=16;okee=10;FF` が 255 ではなく FF を返すのはなぜですか? [コピー]

bc: `ibase=16;okee=10;FF` が 255 ではなく FF を返すのはなぜですか? [コピー]

bc私は2進数を16進数に、8進数を10進数に変換する作業をしてきました。

次の例では、16進数(hex)を2進数、8進数、10進数に変換します。

最初の2回の試みには何の問題もありませんでした。

$ echo 'ibase=16; obase=2; FF' | bc  
11111111
$ echo 'ibase=16; obase=8; FF' | bc 
377

しかし、16進数(hex)数字を10進数(decimal)に変換しようとすると、間違った答えが出ます。答えは255

$ echo 'ibase=16; obase=10; FF' | bc 
FF

ベストアンサー1

完了したら、ibase=1616進数で数値を追加してください。含む10 は 10obase=10進値 16 を表します。したがって、obaseは新しい入力基準(現在の16進数)を使用する前または後に設定できます。

$ echo 'obase=10; ibase=16; FF' | bc
255
$ echo 'ibase=16; obase=A; FF' | bc
255

おすすめ記事