Computers represent and process information in chunks of a fixed size.
Because computers were first used for numerical calculations, early
computer engineers developed a representation for numbers in terms of
fixed-size chunks. Programming languages must mediate the gap between these
fixed-size representations and the true mathematics. Because using the
hardware representation for numbers makes a program's calculations as
efficient as possible, the designers and implementors of programming
languages adopted the hardware-based choice.
This intermezzo explains the fixed-size representation for numbers and its
consequences in some detail. The first subsection introduces a concrete
fixed-size representation for numbers, discusses what it implies for the
representation of numbers, and shows how to calculate with such
numbers. The second and third section illustrate the two most fundamental
problems of fixed-size number arithmetic: overflow and underflow,
respectively.