Re: [OT] GNU bc base conversion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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



[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux