bcは16進計算をサポートしていますか?


20

hex直接計算しようとしてbcいますが、既にスケールを指定しています。

echo 'scale=16;c06b1000-c06a5e78' | bc

しかし、私はまだゼロを取得します。何が間違っているのでしょうか?


技術的には質問に対する答えではありませんが、bc(1)ではなくmoo(1)を検討することをお勧めします。

回答:


33
echo 'ibase=16;C06D1000-C06A5E78' | bc
176520

小文字は関数名や変数名と競合するため、大文字の16進数のみがサポートされていることに注意してください。この例では0になります(var1 - var2

16進数の回答も必要な場合は、obase変数を設定するだけです。

echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc
2B188

PS:FYI scaleは変換ベース用に設計されていません。からman bc

scale defines how some operations use digits after the decimal point.
The default value of scale is 0.

したがって、「何が間違っている可能性があるか」についての本当の答えは、bcは16進数の大文字のみをサポートし、編集者Stephaneの功績によるものです。
ローランド

設定obaseする前に設定することが重要であることに注意してくださいibaseibase最初に設定すると、解析される値にobaseも影響します。すなわち、0x16 = 22にibase = 16; obase = 16;設定obaseします
Arnavion
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.