On 08/28/2015 07:15 AM, Mike - st257 wrote:
Thoughts as to why my BC functions aren't properly converting between bases?
Decimal to binary or hex works fine, but not binary or hex to decimal and
so forth.
I'm not an expert in bc, so I might be wrong, but it looks like setting
the ibase inside a function is simply too late. ibase affects how bc
interprets input. So "echo "bin_to_dec(1001)" | bc" is going to
interpret the value of 1001 while reading it from input, not after
passing it to a function where ibase is reset.
Supporting that theory:
$ bc
...
define bin_to_dec(b) { obase=10; ibase=2; return b; }
bin_to_dec(1001)
1001
Decimal to binary and hex work correctly because decimal input is the
default. Since ibase is already 10, those values are interpreted the
way you want, but not because you're setting ibase in your function.
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos