
In the chapters of this book, we have deliberately kept discussion of arithmetic to a minimum. However, it is important overall and fundamental to understanding how some operators work, so I have included a summary of the subject in this appendix. If you feel confident about your math knowledge, this will all be old hat to you and you need read no further. If you find the math parts tough, then this section should show you how easy it really is.
First let's consider what we mean when we write a common everyday number such as 321 or 747. Put more precisely we mean:
321 is:
3 x 10 x 10 + 2 x 10 + 1
and 747 is:
7 x 10 x 10 + 4 x 10 + 7
Because it is built around powers of ten, we call this the decimal system (derived from the Latin decimalis meaning of tithes, which was a tax of 10%  ah, those were the days...).
Representing numbers in this way is very handy for people with ten fingers and ten toes, or creatures with ten of any kind of appendage for that matter. However, your PC is quite unhandy in this context, being built mainly of switches that are either on or off. This is OK for counting up to two, but not spectacular at counting to ten. For this reason your computer represents numbers to base 2 rather than base 10. This is called the binary system of counting, analogous to the bicycle (two wheels). With the decimal system, to base 10, the digits used can be from 0 to 9. In the binary system, to base 2, the digits can only be 0 or 1, ideal when you only have on/off switches to represent them. Each digit in the binary system is called a bit, being an abbreviation for binary digit. In an exact analogy to our usual base 10 counting, the binary number 1101 is therefore:
1 x 2 x 2 x 2 + 1 x 2 x 2 + 0 x 2 + 1
which amounts to 13 in the decimal system. In the following figure you can see the decimal equivalents of 8bit binary numbers illustrated.
Note that using just 7 bits we can represent all the decimal numbers from 0 to 127, which is a total of 2^{7}, or128 numbers, and using all 8 bits we get 256, or 2^{8} numbers. In general, if we have n bits we can represent 2^{n} positive integers with values from 0 to 2^{n}1.