Ten's (not Two's) Complement
Marlene Miller
Ranch Hand
Posts: 1392
posted 13 years ago
This is an essay on Ten�s (10�s) Complement.
Lesson 1.
There are 10000 4digit numbers, from 0000 to 9999.
Take the second half of those numbers (5001 to 9999) and designate them as the negative numbers of the first half (1 to 4999). The number 5000 is a problem.
Which number from the second half shall represent the negative of a number from the first half?
0000
0001 + 9999 == 10000
0002 + 9998 == 10000
0003 + 9997 == 10000
...
1234 + 8766 == 10000
...
4997 + 5003 == 10000
4998 + 5002 == 10000
4999 + 5001 == 10000
5000
Notice that 1 + 9 == 2 + 8 == 3 + 7 == ... == 4 + 6 == 10.
Notice that 1 + 9999 == 2 + 9998 == 3 + 9997 == 4999 + 5001 == 10000.
We define the negative of x to be 10000 � x.
Lesson 2.
The negative of x is 10000 � x.
Let y be the negative of x.
y = 10000 � x = 9999 � x + 1.
To get the negative of a number, it is often easier to subtract each digit from 9 and then add 1.
Lesson 3.
0 = 10000.
To get the negative of 0, we subtract from 10000 as always and then drop the overflow highorder 5th digit. 0 == 0.
Lesson 4.
Notice that the high order digit of a negative number is always 5,6,7,8 or 9. The high order digit is often called the sign digit.
5000 = 10000  5000 = 5000.
The negative of 5000 is 5000. 5000 has no positive number.
[ October 09, 2003: Message edited by: Marlene Miller ]
Lesson 1.
There are 10000 4digit numbers, from 0000 to 9999.
Take the second half of those numbers (5001 to 9999) and designate them as the negative numbers of the first half (1 to 4999). The number 5000 is a problem.
Which number from the second half shall represent the negative of a number from the first half?
0000
0001 + 9999 == 10000
0002 + 9998 == 10000
0003 + 9997 == 10000
...
1234 + 8766 == 10000
...
4997 + 5003 == 10000
4998 + 5002 == 10000
4999 + 5001 == 10000
5000
Notice that 1 + 9 == 2 + 8 == 3 + 7 == ... == 4 + 6 == 10.
Notice that 1 + 9999 == 2 + 9998 == 3 + 9997 == 4999 + 5001 == 10000.
We define the negative of x to be 10000 � x.
Lesson 2.
The negative of x is 10000 � x.
Let y be the negative of x.
y = 10000 � x = 9999 � x + 1.
To get the negative of a number, it is often easier to subtract each digit from 9 and then add 1.
Lesson 3.
0 = 10000.
To get the negative of 0, we subtract from 10000 as always and then drop the overflow highorder 5th digit. 0 == 0.
Lesson 4.
Notice that the high order digit of a negative number is always 5,6,7,8 or 9. The high order digit is often called the sign digit.
5000 = 10000  5000 = 5000.
The negative of 5000 is 5000. 5000 has no positive number.
[ October 09, 2003: Message edited by: Marlene Miller ]
Corey McGlone
Ranch Hand
Posts: 3271
posted 13 years ago
That is a nice essay, Marlene and I understand the underlying meaning of this with regards to 2's complement (or 10's or whatever base, I suppose), but this level of theory is certainly not required for the exam. That's great that you want to drill down to this level of detail but, like I said, it's not required for the exam  I'm going to move this to Java in General, Intermediate.
In short, this is a nice explanation for having one extra "negative" value than "positive" value, such as a byte ranging from 128 to 127.
In short, this is a nice explanation for having one extra "negative" value than "positive" value, such as a byte ranging from 128 to 127.
Gravity is a harsh mistress. But this tiny ad is pretty easy to deal with:
the new thread boost feature: great for the advertiser and smooth for the coderanch user
https://coderanch.com/t/674455/ThreadBoostfeature
