4.3.4 Fixnum arithmetic

The usual arithmetic operations like + and < are called
generic arithmetic operations because they work for all (appropriate)
kinds of number.

A fixnum is an exact integer that is small enough to fit in a
machine word. In MIT/GNU Scheme, fixnums are 26 bits on 32-bit
machines, and 58 bits on 64-bit machines; it is reasonable to assume
that fixnums are at least 24 bits. Fixnums are signed; they are encoded
using 2's complement.

All exact integers that are small enough to be encoded as fixnums are
always encoded as fixnums—in other words, any exact integer that is
not a fixnum is too big to be encoded as such. For this reason, small
constants such as 0 or 1 are guaranteed to be fixnums. In
addition, the lengths of and valid indexes into strings and vectors are
also always fixnums.

If you know that a value is always a small fixnum, you can substitute
the equivalent fixnum operation for the generic operation. However,
care should be exercised: if used improperly, these operations can
return incorrect answers, or even malformed objects that confuse the
garbage collector. For a listing of all fixnum operations, see
Fixnum Operations.

A fruitful area for inserting fixnum operations is in the index
operations in tight loops.