|


Converting Binary and Decimal to Hexadecimal and BackDate: 08/12/2001 at 22:56:40 From: robert coleman Subject: Bin to hex conversions also decimal to hex Convert binary numbers to hexadecimal, and reverse. Also convert decimal to hexadecimal numbers.
Date: 08/13/2001 at 03:33:30
From: Doctor Jeremiah
Subject: Re: Bin to hex conversions also decimal to hex
Hi Robert,
It would helps if you explained your current level of understanding
and described what kind of answer you were looking for. Since I don't
have this information I can only give you a basic overview of the
subject. I encourage you to write back with a more specific question.
As you probably know, binary numbers have digits just like decimal
numbers with one difference: the decimal digits go from 0 to 9, but
the hexadecimal digits can only go from 0 to 1.
So as with decimal numbers, when you get to the largest number that is
allowed in a digit you start on the next place value. In decimal,
after you get to the largest digit value (9) you go back to 0, but
you increment the digit in the place value to the left. Binary is the
same: when you get to the largest digit value (1) you go back to 0 and
increment the digit in the place value to the left.
So binary numbers go (in order): 0, 1, 10, 11 ...
Hexadecimal numbers are exactly the same except that there are 16
different digit values. Because each digit must be only one character,
we need to use all the numbers (0 through 9) and then use some
alphabetic characters (A through F).
So when a hexadecimal digit gets to 9, it doesn't go back to 0;
instead it goes on to A. After it gets to F it goes back to 0 and
increments the digit in the place value to the right.
So hex numbers go: 0, 1 ... 9, A ... F, 10, 11 ...
Binary to hexadecimal is very easy because hexadecimal numbers are
designed specifically so that each hex digit is exactly 4 bits (i.e.
16 different values). So if you had this binary number:
binary: 100011011011110101000100001
You could put in commas every four places (starting on the left):
binary: 100,0110,1101,1110,1010,0010,0001
Then you could write the hex values immediately below:
binary: 0100,0110,1101,1110,1010,0010,0001
hex: 4 6 D E A 2 1
and the hex value would be 46DEA21.
How did we come up with this translation of digits?
binary decimal hex
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F
Do you see why I said that each hex digit was 4 bits?
To convert a hexadecimal number back to binary you generate 4 bits for
each hex digit:
hex: 4 6 D E A 2 1
binary: 0100 0101 1101 1110 1010 0010 0001
So converting between binary and hex is easy because it has been
defined in such a way that is easy.
Converting to and from decimal is harder because decimal is not
based on an integral number of binary bits. We need to learn how to
change between arbitrary bases. It all relies on how numbers work.
Each place value in a number has a certain value. For example:
7431 = 7*10^3 + 4*10^2 + 3*10^1 + 1*10^0
where ^ means "with an exponent of"
And binary is the same way:
110101 = 1*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0
So to convert binary into decimal all you need to do is add up those
values:
1*2^5 ==> 32
+ 1*2^4 ==> + 16
+ 0*2^3 ==> + 0
+ 1*2^2 ==> + 4
+ 0*2^1 ==> + 0
+ 1*2^0 ==> + 1
------- ----
= 110101 = 53
That's how to convert binary into decimal. Hex is done the same way:
F40A2 = F*16^4 + 4*16^3 + 0*16^2 + A*16^1 + 2*16^0
= 15*16^4 + 4*16^3 + 0*16^2 + 10*16^1 + 2*16^0
(F) 15*16^4 ==> 983040
+ (4) 4*16^3 ==> + 16384
+ (0) 0*16^2 ==> + 0
+ (A) 10*16^1 ==> + 160
+ (2) 2*16^0 ==> + 2
------------- --------
= F40A2 = 999586
converting to decimal is the easy direction. To convert decimal to
binary you do this:
decimal: 12345
Step 1: Divide the decimal number by 2. The remainder is the
rightmost binary digit.
Step 2: Then truncate the result (take just the integer part and
throw away the remainder).
Step 3: Divide the integer decimal number from Step 2 by 2.
The remainder is the binary digit just to the left
of the ones you have found up until now.
step 4: If the integer part is zero, you are done. If not,
Go to Step 2.
When you actually do it it looks like this:
decimal: 12345
Step 1: 12345/2=6172 remainder 1 ==> 1
Step 2: new value is 6172
Step 3: 6172/2=3086 remainder 0 ==> 01
Step 4: 3086 > 0 so go to step 2
Step 2: new value is 3086
Step 3: 3086/2=1543 remainder 0 ==> 001
Step 4: 1543 > 0 so go to step 2
Step 2: new value is 1543
Step 3: 1543/2=771 remainder 1 ==> 1001
Step 4: 771 > 0 so go to step 2
Step 2: new value is 771
Step 3: 771/2=385 remainder 1 ==> 11001
Step 4: 385 > 0 so go to step 2
Step 2: new value is 385
Step 3: 385/2=192 remainder 1 ==> 111001
Step 4: 192 > 0 so go to step 2
Step 2: new value is 192
Step 3: 192/2=96 remainder 0 ==> 0111001
Step 4: 96 > 0 so go to step 2
Step 2: new value is 96
Step 3: 96/2=48 remainder 0 ==> 00111001
Step 4: 48 > 0 so go to step 2
Step 2: new value is 48
Step 3: 48/2=24 remainder 0 ==> 000111001
Step 4: 24 > 0 so go to step 2
Step 2: new value is 24
Step 3: 24/2=12 remainder 0 ==> 0000111001
Step 4: 12 > 0 so go to step 2
Step 2: new value is 12
Step 3: 12/2=6 remainder 0 ==> 00000111001
Step 4: 6 > 0 so go to step 2
Step 2: new value is 6
Step 3: 6/2=3 remainder 0 ==> 000000111001
Step 4: 3 > 0 so go to step 2
Step 2: new value is 3
Step 3: 3/2=1 remainder 1 ==> 1000000111001
Step 4: 1 > 0 so go to step 2
Step 2: new value is 1
Step 3: 1/2=0 remainder 1 ==> 11000000111001
Step 4: 0 = 0 so quit
So decimal 12345 is actually binary 11000000111001
Hex is done the same way, except instead of dividing by 2 you divide
by 16.
That's basically how conversions between bases works. If this doesn't
answer your specific questions, please write back.
- Doctor Jeremiah, The Math Forum
http://mathforum.org/dr.math/
|
Search the Dr. Math Library: |
[Privacy Policy] [Terms of Use]


Ask Dr. MathTM
© 1994-2013 The Math Forum
http://mathforum.org/dr.math/