ineb
ineb

Reputation: 53

bc command acts strange on obase=10

today i found the 'bc' linux command and found a strange behaviour when calculating with outputbase 10.

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

well, command 1 and 2 are correct, but the third command simply prints the inputvalue.

echo "ibase=16;AFBE" | bc
44990

gives a correct result.

Is there any reason in this behaviour?

Upvotes: 2

Views: 605

Answers (2)

Anton Kovalenko
Anton Kovalenko

Reputation: 21507

Obviously, bc uses your ibase when it reads obase: that's why obase=10 always means "the same as ibase".

In the latest example, you don't give obase=10 (which would set the value to decimal 16), that's why obase remains the default (decimal 10).

Upvotes: 2

cyfur01
cyfur01

Reputation: 3312

You're not the first person to be caught by this. Apparently you need to set obase before ibase:

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

Upvotes: 2

Related Questions