﻿ Java Tutorial
﻿

Main Page # Appendix B: Computer Arithmetic

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.

## Binary Numbers

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 8-bit binary numbers illustrated.

Binary

Decimal

Binary

Decimal

0000 0000

0

1000 0000

128

0000 0001

1

1000 0001

129

0000 0010

2

1000 0010

130

...

...

...

...

0001 0000

16

1001 0000

144

0001 0001

17

1001 0001

145

...

...

...

...

0111 1100

124

1111 1100

252

0111 1101

125

1111 1101

253

0111 1110

126

1111 1110

254

0111 1111

127

1111 1111

255

Note that using just 7 bits we can represent all the decimal numbers from 0 to 127, which is a total of 27, or128 numbers, and using all 8 bits we get 256, or 28 numbers. In general, if we have n bits we can represent 2n positive integers with values from 0 to 2n-1.

JavaScript Editor Java Tutorials Free JavaScript Editor

﻿