bcを使用して2進数を16進数に変換するのに問題があります。

bcを使用して2進数を16進数に変換するのに問題があります。

ここでは、コマンドライン電卓とドキュメントを使用して計算を実行する方法を読んでいますが、それでも予想される結果が得られず、エラーが見つかりませんでした。シェルで実行した操作は次のとおりです。

bc << HERE
>ibase=2
>obase=16
>1001
>HERE
100

2進数1001は16進数9なので、結果として9が出ると予想して100が出ました。

ベストアンサー1

入力ベースを最初に設定し、出力ベースを設定すると、16は入力ベース(2)として解釈されます。この場合、6inは16単にバイナリビットとして解釈されるように見える1ため、出力ベースはバイナリ11または10進3に設定されます。

この問題を解決するには、入力ベースを設定する前に出力ベースを設定できます。

echo 'obase=16; ibase=2; 1001' | bc

おすすめ記事