[Mentor's note: This post does not use the template because it was originally posted in a non-homework forum. I moved it here instead of deleting it and asking the poster to re-post, because he has already shown a reasonable amount of effort.]

I am having a bit of trouble with this homework assignment...

I am given two hexadecimal numbers.
A = 0D34
B = DD17

The directions are to find the sum of A and B if they represent signed 16-bit hexadecimal numbers stored in sign-magnitude format.

I attempted to convert both numbers to binary.

0D34 = 0000 1101 0011 0100
DD17 = 1101 1101 0001 0111

then, because the leading 1 in the binary representation of DD17 makes it negative, I took the 2's comp of DD17 and got 0010 0010 1110 1001.

However when I add that result with the binary representation of 0D34 I get..

0000 1101 0011 0100
+ 0010 0010 1110 1001
--------------------------------
0011 0000 0001 1101

which is represented in hexadecimal as 301D. I know this is wrong because the correct answer is CFE3.

Can anyone point out what I am doing wrong here? It would be of great help.
Thanks.

Last edited by a moderator:

Related Engineering and Comp Sci Homework Help News on Phys.org
CWatters
Homework Helper
Gold Member
I believe the rules for signed addition are...

If they have the same sign, add the magnitudes and keep that sign.

If they have different signs, then subtract the smaller magnitude
from the larger one. The sign of the number with the larger
magnitude is the sign of the result.

It appears the second case applies because |B| > |A|.

Edit: Yes that gives the answer CFE3

Last edited:
Note that you got the two's complement of the required answer (CFE3) as you subtracted B from A , not A from B.