Computers and Numbering Systems Part 1 - Decimal and Binary
Overview
This is a 3 part tutorial. Part 1 covers the decimal and binary numbering systems, part 2 covers the hexadecimal numbering system, and part 3 is an overview on how computers manage numbers.
Decimal(base-10)
Decimal(base-10) is the everyday numbering system that you are used to. It has the symbols:
0,1,2,3,4,5,6,7,8,9
Now, notice the base-10 in the parenthesises above? Notice how many symbols are in the decimal system(10)? A numbering systems base is the amount of symbols in the numbering system. For decimal, the number of symbols is 10. With those ten symbols we add, subtract, multiply, divide, and a dozen other things.
Let's break down a decimal number. Say, 280. When we break down the number we get:
2*(10)^2 + 8*(10)^1 + 0*(10)^0
once simplified:
200+80+0=280
(remember that zero to any power is 1 and any number times 0 is 0)
Notice that in each case, we multiply by a power of 10.
Binary(base-2)
Binary(base-2) is the numbering system that computers use. If you read the above explination of bases then you know that binary(base-2) only has two symbols:
0,1
And yes, we can make any whole number(0,1,2,3,...) that we want with just two symbols. Below is a chart that shows a binary number on the left and what it is in decimal on the right:
Binary Decimal
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
10001 17
11110 30
1000010 66
Now you're probably thinking, "why do would computers use a numbering system whose numbers are so long(like 1000010 instead of the short decimal 66)?"
The answer? Computers represent the 0 or 1 with electricity. Say, +5 volts for 1 and 0 volts for 0. If a computer used the decimal numbering system, then it would need ten different voltages and much more complex and expensive hardware.
Converting Binary to Decimal
Converting a binary number to a decimal number is very easy. All we need to do is multiply each digit in the binary number by the correct power of 2. The correct power of 2 is easily found by counting the number of digits to the digit that you want and subtracting one.
So, let's convert 10101 to decimal:
1*(2)^4 + 0*(2)^3 + 1*(2)^2 + 0*(2)^1 + 1*(2)^0
once simplified:
16+0+4+0+1=21
Here are some more examples:
Binary: 10
1*(2)^1 + 0*(2)^0
once simplified
2+0=2
Binary: 101
1*(2)^2 + 0*(2)^1 + 1*(2)^0
once simplified
4+0+1=5
Binary: 1110011
1*(2)^6 + 1*(2)^5 + 1*(2)^4 + 0*(2)^3 + 0*(2)^2 + 1*(2)^1 + 1*(2)^0
once simplified
64+32+16+0+0+2+1=115
Converting Decimal to Binary
Converting decimal to binary is a little bit harder than binary to decimal. The easiest thing to to is to start by making a table with the powers of 2 like this:
2^0 1
2^1 2
2^2 4
2^3 8
2^4 16
2^5 32
2^6 64
2^7 128
2^8 256
2^9 512
2^10 1024
Okay, we're going to convert 15(decimal) to binary. To start we need to look at our chart and find the highest power of 2 that we can subtract from 15 without ending up with a negative number. In this case it is 2^3 which is 8. We now know that the binary equivilent of 15 is going to have 4 digits(the exponent + 1 tells us this). So we write down for spaces:
_ _ _ _
In the first place we have a 1 because we are able to subtract 2^3 from 15 with a remainder of positive 7. So we now have:
1_ _ _
We take our remainder of 7 and see if the next lowest power of 2 can be subtracted form 7 without giving us a negative number. In this case the next lowest power of 2 is 2^2 which equals 4. We subtract 4 from 7 and endup with a positive remainder of 3. So our next place in the binary number is 1:
11_ _
We keep doing this until we are left with nothing:
3-2^1=1
111_
1-2^0=0
1111
So 15 equals 1111 binary.
Now, let's convert 5 to binary. We find the highest power of 2 that when subtracted from 5 doesn't give us a negative answer. In this case it is 2^2 which is 4. We now know that we will have 3 digits in our binary number:
_ _ _
We subtract 4 from 5 and have a remainder of positive 1:
1_ _
Now we take the next lowest power of 2. It's 2^1 which equals 2. When we subtract 2 from 1 we end up with -1. What does that mean? It means that the digit for that space in our binary number is 0:
10_
Note that we still have positive 1. Since subtracting 2^1 from 1 would leave us with -1 we don't subtract 2^1 from 1. Now we take the next lowest power of 2, which is 2^0, and subtract it from 1. We are left with an answer of 0. Since 0 isn't negative we set our last digit in our binary number to 1 and we are done:
101
So 15 equals 101 binary
Here are some more examples:
20:
20 - 2^4 = 4
1 _ _ _ _
4 - 2^3 = -4
10_ _ _
4 - 2^2 = 0
101_ _
We're left with 0 so the rest of the digits are 0,
10100
7:
7 - 2^2 = 3
1_ _
3 - 2^1 = 1
11_
1 - 2^0 = 0
111
31:
31 - 2^4 = 15
1_ _ _ _
15 - 2^3 = 7
11_ _ _
7 - 2^2 = 3
111_ _
3 - 2^1 = 1
1111_
1 - 2^0 = 0
11111
Now you should be able to convert binary to decimal and decimal to binary. Part 2 of this tutorial will cover the hexadecimal numbering system.