One thing that's really handy to know about *bc*
is how to use it
for base conversion.

By default, *bc*
takes its input and prints its output in
decimal. However, you can set either the input or the output
to be some other base numbering system - for example,
hexadecimal or binary - using the *ibase*
and *obase*
commands.

For example, to find the decimal equivalents to a
hexadecimal number, set *ibase*
to 16, and leave *obase*
alone
(i.e., as decimal). Simply type the number (or a series of
numbers separated by semicolons) you want converted, and press
RETURN.
The decimal equivalent will be printed below.
(Hexadecimal numbers from A to F must be typed in uppercase,
or *bc*
will report an error.)
For example:

% **bc
ibase=16
B6;7F;FFF**

182
127
4095

Or if you wanted to convert *to*
hexadecimal, you'd set
*obase*
to 16, and leave *ibase*
at 10:

% **bc
obase=16
142**

8E

Or, to convert binary to hexadecimal, set `ibase=2`

and `obase=16`

(or `ibase=16`

and `obase=2`

for the reverse operation):

% **bc
obase=16
ibase=2
11010001**

D1

Type CTRL-d to exit *bc*
.
Be careful to set *obase*
before *ibase*
,
or you will have
problems (49.3
)
.