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
systems. 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 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
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.
a. 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
b. 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,
(409610).
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 a 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 zeros to the left most bit until we
have a complete four bit binary number or multiples thereof.
c. 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.
Next topic will be on Octal Numbers
No comments:
Post a Comment