Hexadecimal Numbers |
Navigation |
|
|
Hexadecimal Numbers
The one main disadvantage of Binary Numbers is that the binary equivalent of a
large decimal number can be quite long, which makes it difficult to both read or write without producing errors
especially when working with 16 or 32-bit numbers. One common way of overcoming this problem is to arrange the
binary numbers into groups of four as Hexadecimal Numbers, starting with the least significant
digit at the right hand side. This Hexadecimal or simply "Hex" numbering system uses the Base of 16
system. Hence, it uses 16 (sixteen) different digits with a combination of numbers from 0
to 9 and the capital letters A to F
to represent its Binary or Decimal equivalent.
We can make life easier by splitting these large binary numbers up into even groups to make
them more easier to write down and understandable. For example, the following group of binary digits
1101 0101 1100 11112
are much easier to read and understand than 11010101110011112
when they are all bunched up together. In the everyday use of the decimal numbering system we use groups of three
digits or 000's from the right hand side to make a very large number such as a million or trillion easier to
understand and the same is true in digital systems.
Hexadecimal Numbers are a more complex system than using just binary or decimal
and is mainly used when dealing with computers and memory address locations. By dividing a binary number up into
groups of 4 bits, each group or set of 4 digits can now have a possible value of between "0000"
(0) and "1111" (8+4+2+1 = 15) giving a total of 16 different number combinations
from 0 to 15. Don't forget that "0" is also a valid digit. We remember from the first
tutorial about Binary Numbers that a four-bit group of digits is called a "nibble" and as a four-bits
are also required to produce a hexadecimal number, a hex digit can also be thought of as a nibble, or half-a-byte.
Then two hexadecimal numbers are required to produce one full byte from 00 to
FF. Also, since 16 in the decimal system is the fourth power of 2 (or 24),
one hex digit has a value equal to four binary digits so now q = "16".
The numbers 0 to 9 are still used as in
the original decimal system, but the numbers from 10 to 15 are now represented by capital letters of the alphabet
from A to F inclusive and the relationship between binary and
hexadecimal is shown below.
Hexadecimal Numbers
| Decimal | 4-bit Binary |
Hexadecimal |
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 2 |
| 3 | 0011 | 3 |
| 4 | 0100 | 4 |
| 5 | 0101 | 5 |
| 6 | 0110 | 6 |
| 7 | 0111 | 7 |
| 8 | 1000 | 8 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
| 16 | 0001 0000 | 10 (1+0) |
| 17 | 0001 0001 | 11 (1+1) |
| Continuing upwards in groups of four |
Using the original binary number from above 1101 0101 1100 11112
this can now be converted into an equivalent hexadecimal number of D5CF16
which is much easier to read and understand than a long row of 1īs and 0īs that we had before. Similarly,
converting Hex based numbers back into binary is simply the reverse operation.
Then the main characteristics of a Hexadecimal Numbering System is that there are 16
distinct counting digits from 0 to F with each digit having a weight
or value of 16 starting from the least significant bit (LSB). In order to distinguish Hexadecimal numbers from Denary
numbers, a prefix of either a "#", (Hash) or a "$" (Dollar sign) is
used before the actual Hexadecimal value, #D5CF or $D5CF.
As the base of a hexadecimal system is 16, which also represents the number of individual symbols
used in the system, the subscript 16 is used to identify a number expressed in hexadecimal. For example,
D5CF16
Counting using Hexadecimal Numbers
So we now know how to convert 4 binary digits into a hexadecimal number. But what if we had more
than 4 binary digits how would we count in hexadecimal beyond the final letter F. The simple
answer is to start over again with another set of 4 bits as follows.
0...to...9, A,B,C,D,E,F, 10...to...19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21....etc
Do not get confused, 10 or 20 is NOT ten
or twenty it is 1 + 0 and 2 + 0
in hexadecimal. In fact twenty does not even exist in hex. With two hexadecimal numbers we can count up to
FF which is equal to decimal 255. Likewise, to count higher than
FF we would add a third hexadecimal digit to the left so the first 3-bit hexadecimal number
would be 10016, (25610) and the last would be
FFF16, (409510). The maximum 4-digit hexadecimal number is
FFFF16 which is equal to 65,535 in decimal and so on.
This adding of additional hexadecimal digits to convert both decimal and binary numbers into an
Hexadecimal Number is very easy if there are 4, 8, 12 or 16 binary digits to convert. But we can
also add zero's to the left of the most significant bit, the MSB if the number of binary bits
is not a multiple of four. For example, 110010110110012 is a fourteen bit binary
number that is to large for just three hexadecimal digits only, yet too small for a four hexadecimal number. The
answer is to ADD additional zero's to the left most bit until we have a complete four bit binary number or multiples
thereof.
Adding of Additional 0's to a Binary Number
| Binary Number |
0011 |
0010 |
1101 |
1001 |
|
| Hexadecimal Number |
3 |
2 |
D |
9 |
The main advantage of a Hexadecimal Number is that it is very compact and by using
a base of 16 means that the number of digits used to represent a given number is usually less than in binary or decimal.
Also, it is quick and easy to convert between hexadecimal numbers and binary.
Example No1
Convert the following Binary number 1110 10102 into its
Hexadecimal number equivalent.
| 111010102 | |
Group the bits into four's starting from the right hand side
|
= |
1110 |
1010 |
|
= |
14 |
10 |
(in decimal) |
= |
E |
A |
(in Hex) |
Then, the hexadecimal equivalent of the binary number
1110 10102 is #EA16 |
Example No2
Convert the following Hexadecimal number #3FA716
into its Binary equivalent, and also into its Decimal or Denary equivalent using subscripts to identify each numbering system.
| #3FA716 | |
| | = 0011 1111 1010 01112 |
| | = (8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 32 + 4 + 2 + 1) |
| | = 16,29510 |
Then, the Decimal number of 16,295 can be represented as:-
#3FA716 in Hexadecimal
or
0011 1111 1010 01112 in Binary.
In the next tutorial about Binary Logic we will look at converting binary
numbers into Octal Numbers and vice vesa.
|