/ / Изваждане на стойност само по себе си чрез комплект 2 - двоично изваждане

Изваждане на стойност само по себе си посредством комплект 2 - двоично изваждане

Използвайки 2-ия допълващ метод за изваждане, резултатът ми е 1111 (-1 в десетична система), докато в следващия случай трябва да бъде 0

  10010
-10010

където и двете стойности се предоставят в двоичен вид.

Отговорът изглежда съвсем очевиден, но следвайки метода на преобразуване на отрицателната стойност в 2 "s complement и след това добавянето му не изглежда да работи в този случай, тъй като резултатът изглежда е 1111.

Благодаря

Отговори:

0 за отговор № 1

Изваждането на число от себе си с помощта на 2 "complement" означава добавяне на 2-то си допълнение (изваждане на число се добавя 2-и комплект):

Трябва да знаете размера на думата в бита, за да определите 2-те допълнения, така че нека предположим, че броят на бита в една дума е 8. След това имате 00010010 като първоначалния номер, и 11101110 като неговата 2-и complement.Complex 2 е комплемент 1 (s) (11101101) с 1 добавен към него.

След това добавете:

 00010010   [original number, 18 decimal]
+11101110   [2"s complement, -18 decimal]
---------
00000000   [note: there"s a 1 overflow bit]

0 за отговор № 2

10010 в два допълнения (ако приемем 5 бита две допълнения) е -14 (-16 +2). 14 в два допълни е 01110 (2 + 4 + 8).

 10010
-10010
=
10010
+01110
=
00000 (actually 100000, but the 1 is overflowed)