bc: About Expressions and Special Variables

 
 3.1 About Expressions and Special Variables
 ===========================================
 
 The numbers are manipulated by expressions and statements.  Since the
 language was designed to be interactive, statements and expressions are
 executed as soon as possible.  There is no main program.  Instead, code
 is executed as it is encountered.  (Functions, discussed in detail
 later, are defined when encountered.)
 
    A simple expression is just a constant.  'bc' converts constants into
 internal decimal numbers using the current input base, specified by the
 variable IBASE.  (There is an exception in functions.)  The legal values
 of IBASE are 2 through 36.  (Bases greater than 16 are an extension.)
 Assigning a value outside this range to IBASE will result in a value of
 2 or 36.  Input numbers may contain the characters 0-9 and A-Z. (Note:
 They must be capitals.  Lower case letters are variable names.)  Single
 digit numbers always have the value of the digit regardless of the value
 of IBASE.  (i.e.  A = 10.)  For multi-digit numbers, 'bc' changes all
 input digits greater or equal to IBASE to the value of IBASE-1.  This
 makes the number 'ZZZ' always be the largest 3 digit number of the input
 base.
 
    Full expressions are similar to many other high level languages.
 Since there is only one kind of number, there are no rules for mixing
 types.  Instead, there are rules on the scale of expressions.  Every
 expression has a scale.  This is derived from the scale of original
 numbers, the operation performed and in many cases, the value of the
 variable SCALE.  Legal values of the variable SCALE are 0 to the maximum
 number representable by a C integer.