This book is an introductory treatment of a traditional branch of computer science which has become increasingly significant. Advances in computer technology make it feasible to design and construct circuits for operations which would have been unthinkably complex for the hardware of earlier computers.
In Chapter 1, About Numbers, the author cautions us that “many of the concepts to which we attach numbers are either intrinsically not quantifiable, or are precise concepts that are not widely understood, or are statistical concepts that are neither well-defined nor widely understood. . . . The urge to quantify and to number so dominates modern conversation and writing that no topic seems adequately treated without some numerical reference, and the most significant aspect of a great work of art may be the price it fetches at auction.” Nonetheless, the representation of numbers within computers, and algorithms and hardware for performing arithmetic operations upon them, are extremely important topics.
Chapter 2, on Decimal Numbers, deals with the representation of numbers to general fixed bases, and it presents systematically a variety of algorithms for converting numbers from one base to another. Chapter 3 gives a clear account of various representations of signed integers, signed fractions, and signed fixed-point numbers, with various algorithms for addition and subtraction. Multiplication is similarly dealt with in Chapter 4, and division is handled in Chapter 5, with careful attention paid to remainders. Binary arithmetic is emphasized, but much of the material is valid for general bases, and some of the algorithms are designed for octal arithmetic. Some refined methods for multiplication and division are considered, since it is now feasible to design hardware for such complicated operations. Chapter 6 is devoted to floating-point arithmetic, with consideration of roundoff error and a brief treatment of interval arithmetic. Chapter 7 is devoted to “some unconventional number systems.” Many of these are intellectual curiosities, but some do have moderate practical advantages. For example, the residue number systems do not have any carry in addition, multiplication, or subtraction. Negative and complex bases are considered, together with p-adic arithmetic, signed digits, and the use of logarithms. Rational arithmetic is discussed with continued fractions. In Chapter 8, on Computation of Functions, the author discusses iterative processes for evaluation of trigonometric and hyperbolic functions, the Fast Fourier Transform, evaluation of polynomials by nested multiplication, and evaluation of continued fractions.
The author does not deal with advanced algorithms, such as Pan’s algorithms for polynomial evaluation [1] and for matrix multiplication [2], and Strassen’s algorithms for matrix multiplication [3] and for integer multiplication [4]. The emphasis is on arithmetic algorithms which can be implemented as hardware. This book is written in an admirably lucid style; mathematics is combined effectively with illustrative examples, and algorithms are combined with logic diagrams for circuits. The problems of parallel operation are balanced against the time required for serial operations, and many of the algorithms are presented in versions with various degrees of parallel and serial operations. Each chapter ends with a list of references, and with numerous exercises for the reader. The book is well printed, and no significant misprints were noticed.
The author has succeeded in his stated purpose: to write an introductory treatment which is suitable “both for the newcomer to the subject and for the person experienced with present-day number systems and arithmetic who wishes a presentation of the new directions in which computer arithmetic is going.”