Number Bases: Octal (Base 8) and
Hexadecimal (Base 16) (page 3 of 3)
An older computer base system is "octal", or base eight. The digits in octal math are 0, 1, 2, 3, 4, 5, 6, and 7. The value "eight" is written as "1 eight and 0 ones", or 108.
I will do the usual repeated division, this time dividing by 8 at each step:
Then the corresponding octal number is 5458.
I will follow the usual procedure, counting off the digits from the RIGHT, starting at zero:
Then I'll do the addition and multiplication:
+ 4×81 + 5×80
Then the corresponding decimal number is 35710.
If you work with computer programming or computer engineering (or computer graphics, about which more later), you will encounter base-sixteen, or hexadecimal, math.
As mentioned before, decimal math does not have one single solitary digit that represents the value of "ten". Instead, we use two digits, a 1 and a 0: "10". But in hexadecimal math, the columns stand for multiples of sixteen! That is, the first column stands for how many units you have, the second column stands for how many sixteens, the third column stands for how many two hundred fifty-sixes (sixteen-times-sixteens), and so forth.
In base ten, we had
In base eight, we had digits 0
In base 4,
we had digits 0
In any base system, you will have digits 0
This means that, in hexadecimal, we need to have "digits"
To do this, we would need single solitary digits that stand for
the values of "ten", "eleven", "twelve",
"thirteen", "fourteen", and "fifteen".
But we don't. So, instead, we use letters. That is, counting in
hexadecimal, the sixteen "numerals" are:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
In other words, A is "ten" in "regular" numbers, B is "eleven", C is "twelve", D is "thirteen", E is "fourteen", and "F" is fifteen. It is this use of letters for digits that makes hexadecimal numbers look so odd at first. But the conversions work in the usual manner.
Here, I will divide repeatedly by 16, keeping track of the remainders as I go. (You might want to use some scratch paper for this.)
Reading off the digits, starting from the top and wrapping around the right-hand side, I see that 35710 = 16516.
List the digits, and count them off from the RIGHT, starting with zero:
Remember that each digit in the hexadecimal number represents how many copies you need of that power of sixteen, and convert the number to decimal:
+ 6×161 + 5×160
Then 16516 = 35710.
I will divide repeatedly by 16, keeping track of my remainders:
From the long division, I can see that the hexadecimal number will have a "fifteen" in the sixteen-cubeds column, a "nine" in the sixteen-squareds column, an "eleven" in the sixteens column, and a "thirteen" in the ones column. But I cannot write the hexadecimal number as "1591113", because this would be confusing and imprecise. So I will use the letters for the "digits" that are otherwise too large, letting "F" stand in for "fifteen", "B" stand in for "eleven", and "D" stand in for "thirteen". Copyright © Elizabeth Stapel 1999-2011 All Rights Reserved
Then 6393310 = F9BD16.
I will list out the digits, and count them off from the RIGHT, starting at zero:
Actually, it will probably be helpful to redo this, converting the alphabetic hexadecimal "digits" to their corresponding "regular" decimal values:
Now I'll do the multiplication and addition:
+ 9×162 + 11×161 + 13×160
As expected, F9BD = 6393310.
If you would like to try converting a decimal number to a base of your own choosing, click here.
If you would like to try converting from a base of your own choosing to a decimal number , click here.
If you work on web pages and graphics programs, you may find it helpful to convert between the RGB values (for an image in your graphics program) and the hexadecimal values (for a matching background color on the web page).
Graphics programs deal with the RGB (red-green-blue) values for colors. Each of these components of a given color have values somewhere between 0 and 255. These values may be converted to hexadecimal values between 00 and FF. If you list the RGB components of a color as a string of three numbers, you might get, say, R:204, G:51, B:255, which translates into a light-purplish #CC33FF in HTML coding. Note that 20410 = CC16, 5110 = 3316, and 25510 = FF16.
On the other hand, if you have some coding for #990033, this would translate into a dark-reddish R:153, G:0, B:51 in your graphics program. That is, to convert between your graphics program and your web-page coding, deal with the hexadecimal number not as one six-digit number, but as three two-digit numbers, and convert these pairs of digits into the corresponding RGB values.
For a discussion of the history of "web safe" colors, including why they involve only the hexadecimal equivalents of 0, 51, 102, 153, 204, and 255, look here. For a demonstration of the different text and background colors in HTML, look here.