# Method of Complements

Hi all,
I'm working on some one's and two's complement questions and with the help of Wikipedia, am trying to understand it. However, I am quite confused as I seem to be getting wrong answers sometimes, thus I have come here for some clarification ;)

Take the following sum:
3694
2468 -
1226

Using nine's complement one would perform the following calculations:
9-2 = 7
9-4 = 5
9-6 = 3
9-8 = 1

then, I would perform the following calculation:
3694
7531
___1 +
11226

and then drop the 1.
That would result in 1226 being the answer which is correct. Now, that was nine's complement, and from further reading it states that ten's complement is nine's complement + 1...so I am assuming they don't mean +1 to 1226, but +1 during the calculation like what I did above. So why is it called ten's complement if it does not affect how I perform the calculation? If I were working in hexadecimals perhaps this would make sense to me, but I am working in decimal so why work out the ten's complement if you have worked out the nine's complement? Not just this, but why would I even go through the entire process if the answer was uncovered in the first step (I worked out 1226 on the 9th line of this post).

Next, moving onto binary, say I wish to perform the following calculation:
47 - 28 = 19
which in binary is 101111 - 11100 (I think)
Using one's complement, I would do the following:
101111
011100 -
110001

and then performing the one's complement act:
1-0 = 1
1-1 = 0
1-1 = 0
1-1 = 0
1-0 = 1
1-0 = 1

and then:
101111
100011 +
101100
111110 +
110010

but as far as I know, 19 in binary is 10011.
Thus, my answer is wrong, and I have no idea why If you can explain these complement arithmetic problems to me I will be very grateful!

Thanks for any help ## Answers and Replies

Hi King,

I'm very new to Complements as I just ask around recently - https://www.physicsforums.com/showthread.php?t=312168

Anyway, I would like to attempt on your problem.

In dec,
47 - 28 = 19

In bin,
101111
011100 -
010011

and then performing the one's complement act:
1-0 = 1
1-1 = 0
1-1 = 0
1-1 = 0
1-0 = 1
1-0 = 1

and then:
0101111
0100011 +
1010010
remove the MSB and add to the LSB
010010
000001 +
010011

I think your binary addition is wrong.

I'm still new so it's better for the Gurus to clarify.

Hey WaterRain,
Thanks for having a go I realised in my calculations here:
101111
100011 +
101100
111110 +
110010
That if I were to drop the 1 on the far left hand side and add it to the new byte then I would get the correct answer. However, what confuses me is the differences between one's and two's complement Hey WaterRain,
Thanks for having a go I realised in my calculations here:

That if I were to drop the 1 on the far left hand side and add it to the new byte then I would get the correct answer. However, what confuses me is the differences between one's and two's complement I'm not too sure either.

To me, one's complement is simply the inversion of bits.
While two's complement can represent negative values and work in addition/subtraction.

I'm a little confused on what I wrote myself as well.
Sure there's a better explanation somewhere..