Binary - So Simple a Computer Can Do It
While every modern computer exchanges and processes information in the ones and zeros of binary, rather than the more cumbersome ten-digit decimal system, the idea isn't a new one.
Australia's aboriginal peoples counted by two, and many tribes of the African bush sent complex messages using drum signals at high and low pitches. Morse code, as well, uses two digits (dots and dashes) to represent the alphabet.
Gottfried Leibniz laid the modern foundation of the movement from decimal to binary as far back as 1666, while
John Atanasoff, a physics professor at Iowa State College, had built a prototype binary computer by 1939.
. . . . . . . . . . . . . . . . . . . .
Today, of course, and in almost every computer built since the 1950s, the binary system has replaced the decimal (which really only came about because it was handy to be able to count on your fingers) and advanced digital computer capabilities to an incredible degree.
Basically, binary simplifies information processing. Because there must always be at least two symbols for a processing system to be able to distinguish significance or purpose, binary is the smallest numbering system that can be used.
The computer's CPU need only recognise two states, on or off, but (with just a touch of
Leibniz' mysticism) from this on-off, yes-no state all things flow - in the same way as a switch must always be open or closed, or an electrical flow on or off, a binary digit must always be one or zero.
If switches are then arranged along
boolean guidelines, these two simple digits can create circuits capable of performing both logical and mathematical operations.
The reduction of decimal to binary does increase the length of the number, a lot, but this is more than made up for in the increase in speed, memory and utilisation.
Especially utilisation. Remember, computers aren't always dealing with pure numbers or logic. Pictures and sound must first be reduced to numerical equivalents that, in turn, have to be decoded again for the end result.
. . . . . . . . . . . . . . . . . . . .
So, how does it work?
It's not so very difficult, really. Binary numbers use the same rules as decimal - the value of any digit always depends on its position in the whole number.
It all gets down to bases. Decimal uses base ten, so that every time a number moves one position to the left in a figure, it increases by a power of ten (eg. 1, 10, 100 etc). Binary, on the other hand, uses base two, so each move to the left increases the value by a power of two (eg. 1, 2, 4 etc).
To convert from decimal to binary, or the other way around, you need only look at the figure's place in the whole number and add up it's value.
Simple.
. . . . . . . . . . . . . . . . . . . .
Binary vs decimal
Decimal |
10 | 1 |
| 0 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
1 | 0 |
|
Binary |
8 | 4 | 2 | 1 |
|
|
| 0 |
|
|
| 1 |
|
| 1 | 0 |
|
| 1 | 1 |
| 1 | 0 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
| 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
| Because binary uses base two as opposed to the decimal base ten, the numbers get larger much more quickly, but they still obey the same principles.In this case, the number ten is represented by 10(no 1s, one x 10) in decimal, and 1010 (no 1s, one x 2, no 4s, one x 8) in binary. |
. . . . . . . . . . . . . . . . . . . .
Conversion
To convert a decimal number to binary, you need only keep subtracting the largest power of two. Here the decimal 200 is represented by 11001000 (one x 128, one x 64, no 32s, no 16s, one x 8, no 4s, no 2s, no 1s)
From binary to decimal is even easier - just add up the columns.
Decimal
|
100 | 10 | 1 |
2 | 0 | 0 |
2 x 100 + 0 + 0 = 200 |
Binary
|
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 x 128 + 1 x 64 + 0 + 0 + 1 x 8 + 0 + 0 + 0 =200 |
. . . . . . . . . . . . . . . . . . . .
Addition
Again, addition differs only from decimal in that it is using base two.
+
|
Decimal
|
100 | 10 | 1 |
2 | 0 | 0 |
| 5 | 0 |
2 | 5 | 0 |
|
+
|
Binary
|
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
|
The only trick here is to remember that it is base 2 - whereas in decimal 1 + 1 = 2 with nothing to carry into the next column, in binary, 1 + 1 still = 2, but that 2 is carried forward (as a 1, naturally).