Understanding Complements Arithmetic: One's & Nine's in Decimals & Binary

  • Thread starter Thread starter King
  • Start date Start date
  • Tags Tags
    Method
Click For Summary
The discussion revolves around understanding one's and two's complement arithmetic, particularly in decimal and binary systems. The initial poster is confused about the application of nine's and ten's complements in decimal calculations, questioning the necessity of ten's complement when nine's complement seems sufficient for obtaining the correct answer. They illustrate their confusion with an example involving subtraction, showing how they arrive at the correct answer using nine's complement but struggle to grasp the role of ten's complement in the process.In binary, the poster attempts to perform a subtraction operation using one's complement but ends up with an incorrect result. Another participant tries to assist by clarifying the binary subtraction process, suggesting that the initial calculations may have errors. The conversation highlights the distinction between one's complement, which involves inverting bits, and two's complement, which allows for the representation of negative numbers and facilitates addition and subtraction. The participants express a desire for clearer explanations of these concepts, indicating a common struggle with the intricacies of complement arithmetic.
King
Messages
43
Reaction score
0
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 :confused:

If you can explain these complement arithmetic problems to me I will be very grateful!

Thanks for any help :smile:
 
Technology news on Phys.org
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 :smile:

I realized in my calculations here:
King said:
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 :frown:
 
King said:
Hey WaterRain,
Thanks for having a go :smile:

I realized 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 :frown:

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..
 
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

Replies
3
Views
12K
  • · Replies 2 ·
Replies
2
Views
9K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
4
Views
2K
  • · Replies 4 ·
Replies
4
Views
16K
  • · Replies 6 ·
Replies
6
Views
4K