Używając metody odejmowania uzupełnienia 2, mój wynik to 1111 (-1 w systemie dziesiętnym), podczas gdy w poniższym przypadku powinien wynosić 0
10010
-10010
gdzie obie wartości podano w postaci binarnej.
Odpowiedź wydaje się dość oczywista, ale zastosowanie metody konwersji wartości ujemnej na dopełnienie 2, a następnie dodanie jej nie wydaje się w tym przypadku działać, ponieważ wydaje się, że wynikiem jest 1111.
Dzięki
Odpowiedzi:
0 dla odpowiedzi № 1Odejmowanie liczby od siebie za pomocą dopełniacza 2 "oznacza dodawanie dopełniacza 2" (odejmowanie liczby dodaje dopełnianie 2 "):
Musisz znać rozmiar słowa w bitach, aby określić komplemet 2 ", więc załóżmy, że liczba bitów w słowie wynosi 8. To masz 00010010
jako oryginalny numer, oraz 11101110
jako uzupełnienie 2 ”. Uzupełnienie 2 jest uzupełnieniem 1” (11101101
) z 1
dodane do tego.
Następnie dodając:
00010010 [original number, 18 decimal]
+11101110 [2"s complement, -18 decimal]
---------
00000000 [note: there"s a 1 overflow bit]
0 dla odpowiedzi nr 2
Uzupełnienie 10010 w dwójkach (przy założeniu, że 5-bitowe uzupełnienie dwójkowe) wynosi -14 (-16 + 2). 14 w uzupełnieniu dwójkowym to 01110 (2 + 4 + 8). Więc
10010
-10010
=
10010
+01110
=
00000 (actually 100000, but the 1 is overflowed)