Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reason for end around carry to do [closed]

I know that the r-1 complement for r-base number should do end around carry if the highest bit has carry.

But I cannot figure out why it should do it.

I merely can think about it is the reason may be about the two representations for zero.

ex:

 1 1 1 0    (-1)
 0 1 0 1    (+5)  
 ===============
10 0 1 1  =====>(0 1 0 0)
I just can explain it from the result that because its sum is positive, and 1's complement has two representations, so it should add one.

ex:

 1 1 1 0    (-1)
 1 0 1 0    (-5)  
 ===============
11 0 1 1  =====>(1 0 0 1)
And I cannot explain it why should add one.

What is the really reason for end around carry?

Thx for you reading it.

like image 477
Jason Avatar asked Dec 21 '22 14:12

Jason


1 Answers

End-around carry is actually rather simple: it changes the modulus of the addition operation from rn to rn–1, if you think of the numbers as unsigned. To simplify things, let's talk about binary.

Let's compute (-2) + (-4) using four-bit two's complement arithmetic:

  1 1 1 0    (-2)
+ 1 1 0 0  + (-4)
---------  ------
1 1 0 1 0    (-6)

Let's keep the carry bit where it is for now. If you look at the numbers as unsigned integers, we're computing 14 + 12 = 26. However, addition is done modulo 16, so we get 10, which is the unsigned number which represents -6 (the correct result).

In ones' complement, the numbers have different representations:

  1 1 0 1    (-2)
+ 1 0 1 1  + (-4)
---------  ------
1 1 0 0 0    (-6)

Again, let's keep the carry bit where it is. If you look at the numbers as unsigned integers, we're computing 13 + 11 = 24. However, due to the wrap-around carry, addition is done modulo 15, so we end up with 9, which represents -6 (the correct result).

So in four-bit two's complement, -2 is equivalent to 14 modulo 16, -4 is equivalent to 12 modulo 16, and -6 is equivalent to 10 modulo 16.

And in four-bit ones' complement, -2 is equivalent to 13 modulo 15, -4 is equivalent to 11 modulo 15, and -6 is equivalent to 9 modulo 15.

Signed zero: The reason you get "signed zero" is because there are 16 possible numbers in four bit, but if you're doing modulo-15 arithmetic, then 0 and 15 are equivalent. That's all there is to it.

like image 99
Dietrich Epp Avatar answered Mar 13 '23 00:03

Dietrich Epp