Drexel dragonThe Math ForumDonate to the Math Forum

Ask Dr. Math - Questions and Answers from our Archives
_____________________________________________
Associated Topics || Dr. Math Home || Search Dr. Math
_____________________________________________

Adding Hexadecimals


Date: 07/13/98 at 23:21:18
From: Cameron Donaldson
Subject: How to use the Hexadecimal system

Hi. I am currently learning Java. I have came to a section in the book 
where I have to learn the hexadecimal system. I seem to understand it 
until it comes to adding them.

The book gives an example of 1A + 2E. I get 38 as an answer, but the 
book says the answer is 48.

I got my conclusion using the following method:

   1A + 2E = 1(10) + 2(14)
           = 10 + 28
           = 38

I have tried other methods, but have had no luck in finding 48 as the 
answer. Please help, Dr. Math.

- Cam


Date: 07/14/98 at 00:11:34
From: Doctor Mike
Subject: Re: How to use the Hexadecimal system

Hi Cam,   

You already seem to know that A, B, C, D, E, and F are the hex digits 
that stand for the decimal (base 10) numbers 10, 11, 12, 13, 14 and 
15, respectively. The digits in base 10 stand for powers of ten, but
the digits in base 16 stand for powers of 16, so you need more of
them.
   
For example, 123 in base 10 means 3*1 + 2*10 + 1*100 and 123 in base 
16 means 3*1 + 2*16 + 1*256.  

Now, for your problem:
   
   1a + 2e = (1*16 + 10) + (2*16 + 14) = 26 + 46 = 72 

But remember that everything to the right of the first = is in base 
10. If you want to represent 72 in hex, we figure out that:

   72 = 64+8 = 4*16+8 

which you write as 48 as a hex number.   
   
I you want to get a bit adventuresome, you can do all the addition
directly in hex. You just have to know the hex addition fact that
a + e = 18. What that really means is that if you add 10, which equals 
a in hexadecimal notation, to 14, which equals e in hexadecimal 
notation, you get 24, which equals 18 in hexadecimal notation.  

Another thing you might need is a reminder of what is really going on 
with ordinary "carrying" in addition.  Let's add 15 and 17. To do that 
you first add the digits in the "ones" column to get 12. You write the 
2 (from the 12) down below, and carry the 1 (from the 12) to the 
"tens" column, getting:
     
    1
    1 5
    1 7
   -----
      2   
   
Then you add all the stuff in the tens column, getting 3, and you
write the 3 down below, so the answer is 32. For hex, the process is 
the same, keeping in mind that you have additional digits that we 
could use. So, in a hexadecimal system, you would get 5 + 7 equalling 
the hex digit c, leaving nothing to carry:   
   
    1 5
    1 7
   -----
      c 

To finish this, add the digits in the "sixteens" column and write it 
down below, for the final hex answer of 2c. 
     
In your original problem you do have to carry, but the second column is 
now the "sixteens place" in hex. It goes like this:
     
    1       
    1 a 
    2 e 
   -----
      8 
  
Then when you add all the numbers in the "sixteens" place you get 4, so 
when you write that down below you get the hex answer 48.
   
Sometimes in computer-related applications base 8 is used instead of 
base 16 or base 10. Here, the place values for the numbers are powers 
of 8 (1, 8, 64, etc.). Then the only digits used are 0, 1, 2, 3, 4, 5, 
6 and 7. Also, also you may see base 2 (binary) used, where the only 
digits used are 0 and 1. For this system, the places represent powers 
of 2 (1, 2, 4, 8, etc.).
     
I hope this helps. 

- Doctor Mike, The Math Forum
Check out our web site! http://mathforum.org/dr.math/   


Date: 07/14/98 at 00:43:12
From: Cameron Donaldson
Subject: Re: How to use the Hexadecimal system

Dr. Mike,

Thanks for your earlier response. I'm starting to understand this some 
more. I have one more question. Why does A + E = 18? How does that 
work?


Date: 07/14/98 at 01:25:09
From: Doctor Mike
Subject: Re: How to use the Hexadecimal system

Hi again,   

Glad to see you are sticking with this until you really understand.  
Okay, here's the reason.   
    
The hex number A means the same as the ordinary number 10.
   
The hex number E means the same as the ordinary number 14.
   
If you add the ordinary numbers 10 and 14 together you get the 
ordinary number 24. So, how do you represent the ordinary number 24 
using the hexadecimal system? It is equal to ordinary 16 + ordinary 8.  
You have one sixteen and 8 ones. You put the hex number together to 
reflect that, namely, put a 1 is the "sixteens place" and an 8 in
the "ones place," giving 18 in hexadecimal notation. It's important to 
realize that, even though this looks as if it could be the ordinary 
base 10 number 18, it is not.  This is the hexadecimal number 18. 
Hexadecimal 18 equals ordinary 24, in base 10.

- Doctor Mike, The Math Forum
  http://mathforum.org/dr.math/   


Date: 07/14/98 at 01:45:16
From: Cameron Donaldson
Subject: Re: How to use the Hexadecimal system

You're being a great help. I think I almost have it. Can you send me a 
couple of questions with answers just to see if I can do them?

-Cam


Date: 07/14/98 at 01:56:49
From: Doctor Mike
Subject: Re: How to use the Hexadecimal system

Hi. Try these:
     
1.    F + F  =  1E  
   
2.    5 * 5  =  19
   
3.   BEAD - 4321 =  7B8C 
   
4.   BEAD + 4321 = 101CE     
    
5.   10000 - 1 = FFFF   

- Doctor Mike, The Math Forum
Check out our web site! http://mathforum.org/dr.math/   


Date: 07/14/98 at 15:24:33
From: Cameron Donaldson
Subject: Re: How to use the Hexadecimal system

This is great!

1. F + F = 1E
My solution:

   F + F = 15 + 15 = 30

I then took 30 and asked how many 16's go into 30? Only one 16 goes
into 30, with 14 left over, and 14 in hex form is E. Therefore, the
answer is 1E.

2. 5 * 5 = 19

My solution

I found this out sort of the same way as the first one. I multiplied 
5 * 5 and got 25. I then asked how many 16's go into 25? Again only 
one does, with 9 remaining. I put the 1 and 9 together to get 19.

3. BEAD - 4321 =  7B8C

My solution - I made a table to help me out:

   BEAD   is   11    14    10    13
   4321   is   04    03    02    01  
 
Next, I translated everything into base 10. So BEAD in base 10 is 
11*4096 + 14*256 + 10*16 + 13*1 = 48813 and similarly, 4321 in base 10 
is 17185. I then subtracted 17185 from 48813 and to get 31628.

Then I set up another table and did some dividing. I asked how many 
4096's go into 31628? I got 7 as an answer. I then took the remainder 
and asked, how many 256's go into it? I got 11. Continuing, I got the 
following table:

   4069   256    16      1
   -----------------------
      7    11     8     12
 
Then I converted the results into hexadecimal notation and got 7B8C.  

4. BEAD + 4321 = 101CE

Using some of the results in number 3, I added the following: 
48812 + 17185 = 65998

Using the same dividing technique as in the previous problem, I get 
the following table:

   65536  4096   256   16    1
   ---------------------------
       1     0     1   12   14

I then converted teh result to hexadecimal notation and got 101CE.

5. 10000 - 1 = FFFF

I need some help with this one.

-Cam


Date: 07/14/98 at 18:44:05
From: Doctor Mike
Subject: Re: How to use the Hexadecimal system

I'm glad you are getting up to speed. You are ready for the next step.
   
Let me compare this to learning a foreign language. For a while you are 
learning basic constructions and vocabulary. Then for a while you think 
in English and mentally translate into the other language before you 
speak. But when you start thinking directly and dreaming in the other 
language you know you have "arrived." You have done well, but let me 
show you how to think directly in the hexadecimal system.  

Let's do the big addition problem. I'll write it in the usual way for 
addition. Warning: every number you see is going to be a hexadecimal 
number. There are no decimal base 10 numbers below. The original 
problem looks like this:
     
     B E A D 
   + 4 3 2 1 
   ----------
   
The first thing is add the ones column, D + 1 = E:
    
     B E A D
   + 4 3 2 1 
   ----------
           E 
   
Then add the two digits in the 16's column, A + 2 = C: 
    
     B E A D
   + 4 3 2 1 
   ----------
         C E 
   
This is just like the way you do regular ordinary addition in base 10 
except that there are more digits. Next we tackle the digits in the 
256's column. We get E + 3 = 11. Sometimes, it helps to count out the 
addition. When adding 3 to E, I start at E and count: F, 10, 11. This 
11 is not your ordinary 11, it is hex 11. Just like ordinary addition, 
you only write down one digit on the bottom, and then carry to the
next place. It comes out like this:
   
     1  
     B E A D 
   + 4 3 2 1
   ----------
       1 C E   
    
Finally, add all the digits in the 4096's column, including the carry 
amount, and write that down below. Since 1 + B + 4 = 10, write down: 
   
      1  
      B E A D 
    + 4 3 2 1     
   ----------
   1 0 1 C E 
   
It is a lot easier and faster this way, and you will have the 
satisfaction of doing it in the "insiders" way! Your way was not wrong, 
just a lot messier than it had to be. 
       
I'm going to ask you to have another try at problem 5, but I will give 
you some hints. "F" is the largest digit in hex. "9" is the largest 
digit in ordinary base 10 system. In ordinary base ten we know that 
that  10000 - 1 = 9999.

Good luck and best regards,
   
- Doctor Mike, The Math Forum
Check out our web site! http://mathforum.org/dr.math/   


Date: 07/14/98 at 19:17:44
From: Cameron Donaldson
Subject: Re: How to use the Hexadecimal system

I now understand the BEAD + 4321 style of adding, but I still am not 
clear on question 5. 

Someone explained it to me this way. What is F + 1? I replied 10. Then 
they asked me, what is 10 - 1? I said F.

Now, when you subtract 1 from 10000 you have to borrow, and when you 
borrow, you end up subtracting 1 from from each column, so each digit 
becomes and F.

Am I right ?

-Cam


Date: 07/14/98 at 20:16:06
From: Doctor Mike
Subject: Re: How to use the Hexadecimal system

Hello again, 
   
Come to think of it, problem 5 was probably a little unfair at this
stage, because it uses one aspect of arithmetic that many people are
a little uncomfortable with. I'm speaking of borrowing, which is sort 
of the opposite of carrying. I think you will remember if I give you a 
simple example in ordinary base 10 arithmetic:
   
     34  
    - 6 
    ----
   
You can't take 6 from 4, so you borrow a ten from the tens column 
(cross out 3 and write 2 above it). Now you have available 14 (original 
4 plus the 10 you borrowed) in the ones column. You can take 6 from 14, 
getting 8, so you write: 
    
    2      
    X 14   
   -   6 
   -----
       8   
    
Next, you have only 2 in the tens column, with nothing to subtract, so 
you write the 2 down below, and the answer is 28. I hope this is at 
least a little familiar to you.   
   
If this had been a hex subtraction problem, almost all of what I said 
would be the same. You still cannot subtract hex 6 from hex 4. You 
still will want to borrow from the next place (3 becomes 2) and use 
that in the ones place. You still have 10 (hex 10 that is) in the ones 
place. But when you subtract hex 6 from hex 14 you get hex E, not 
decimal 8, so you write:
    
    2      
    X 14   
   -   6 
   -----
       E  
  
Continue as before, and the final answer is hex 2E. Neat, eh?  
   
For the problem I gave you of 10000 - 1 = FFFF is the same idea really, 
but it gets a little tricky. But before we put that completely away, we 
should think of it in another useful way, by counting. When you count 
in hex, starting at 7 say, it goes like this:   
    
   8,9,A,B,C,D,E,F,10,11,12,13,14,15,16,17,18,19,1A,1B, ....
     
When you count in hex, starting at FFF8, it goes like this:
   
   FFF8, FFF9, FFFA, FFFB, FFFC, FFFD, FFFE, FFFF, 10000, 100001, ...
   
To convince yourself of that fact, think carefully about carrying,
and do this problem:   
    
      F F F F 
    +       1 
   ----------
    1 0 0 0 0 
     
I'll get you started on the first step. If you add together what is in 
the ones column you get F + 1 = 10 (remember, everything in hex here). 
You write the 0 down below in the ones position in the answer, and 
carry the 1 of the hex ten up to the next place. It looks like:
     
         1      
     F F F F 
   +       1 
   ----------
           0    
   
The carrying just ripples along to the far left end. It is very similar 
to what happens in ordinary arithmetic when you add one to 9999. You 
have to do a lot of carrying, and you end up with 10000 in base 10.    
    
If you accept the fact that:
     
   FFFF + 1 = 10000
   
in hex, then subtracting 1 from both sides of that equation gives:
   
   FFFF = 10000 - 1      
   
How about a joke to wrap up?  
    
 Q:  What did the zero (0) say to the eight (8)?
 A:  Nice belt!     
   
That's about it.  

- Doctor Mike, The Math Forum
Check out our web site! http://mathforum.org/dr.math/   


Date: 07/15/98 at 00:38:23
From: Cameron Donaldson
Subject: Re: How to use the Hexadecimal system

Well. I'd like to thank you so much for helping me out. This has got 
to be one of the trickiest problems I have ever had to face.

Thanks again.

-Cam
    
Associated Topics:
High School Number Theory

Search the Dr. Math Library:


Find items containing (put spaces between keywords):
 
Click only once for faster results:

[ Choose "whole words" when searching for a word like age.]

all keywords, in any order at least one, that exact phrase
parts of words whole words

Submit your own question to Dr. Math

[Privacy Policy] [Terms of Use]

_____________________________________
Math Forum Home || Math Library || Quick Reference || Math Forum Search
_____________________________________

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