One of the
skills which is useful to programmers is an understanding of the
relationship between number bases. When you understand how numbers are
represented in base two (Binary),
base eight (Octal),
and base sixteen (Hexadecimal),
you will better understand references which will be made later in your study
of C++.
The number
system that we all know and love is the Decimal
number system, base 10. In our number system we utilize the digits 0,
1, 2, 3, 4, 5, 6, 7, 8, and 9. All numbers are formed by combining
these digits.
Other number
bases work in the same manner only with different digits.
The Binary
number system, base 2, uses only the digits 0 and 1.
The Octal
number system, base 8, uses the digits 0, 1, 2, 3, 4, 5, 6, and 7.
The Hexadecimal
number system, base 16, uses the
digits and letters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, and F.
Notice how,
in each of these number systems, the number of digits contained within the
system is the name of the system. Base 2 has 2 digits, Base 10 has 10
digits, and so on. Just be careful to remember that each system starts
counting with 0.
Each system
uses its digits to form all of the numbers contained within the system.
In the number system that we know and love, base 10, we are familiar with
the terms "ones", "tens", "hundreds", "thousands", etc. used to describe the
position a digit holds within a number. These terms are actually words
that describe powers
of 10.
The positions within a number in base 10 are formed by systematically
raising the number 10 to various powers.
10^{0}
= 1 
(ones) 
10^{1
}= 10 
(tens)

10^{2}
= 100 
(hundreds) 
10^{3}
= 1000 
(thousands) 
The same
process is used to create numbers in other number systems as well. The
only difference is that instead of raising 10 to a power, the new base
number is used. For example, when working in base 8, you are working
with powers of 8 (8^{0}, 8^{1}, 8^{2}, 8^{3},
...). Base 2 works with powers of 2, base 16 works with powers of 16,
and so on.
In your study of computer programming, most of your
references will be made to the binary number system. The simplicity of
only dealing with two digits (0 or 1) is very appealing to a computer
system. The 0 and 1 can represent current being turned OFF or
ON. Notice how switches on computer hardware often display a 0 or a 1
to represent off or on.
Now, let's go on to the next lesson page and look at how to
convert from one number base to another.
