[Systemy liczbowe] Odejmowanie ZM

PanKracyToNieTak
Użytkownik
Użytkownik
Posty: 54
Rejestracja: 12 sty 2013, o 21:51
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 6 razy

[Systemy liczbowe] Odejmowanie ZM

Post autor: PanKracyToNieTak »

Mam problem z odejmowaniem w ZM. Znam zasady, wykonuję do końca działanie, ale nie jestem pewien, czy wynik jest okej. Może ktoś to sprawdzić?

A = 26
B = 12

Chcę zrealizować działanie: A - B

0 11010
1 01100 +
------------
0 00110

Już na pierwszy rzut oka widać, że wynik jest niewłaściwy, ale przecież dodałem ujemną liczbę więc powinno być: 0 01110 a nie jest..
Ostatnio zmieniony 21 lut 2015, o 14:13 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
majkz
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 4 paź 2014, o 12:09
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 18 razy
Pomógł: 3 razy

[Systemy liczbowe] Odejmowanie ZM

Post autor: majkz »

Zakładam, że wykonuję działanie w systemie U2 8 bitowym.

\(\displaystyle{ A = 0 \ 0011010}\)

\(\displaystyle{ B = -12 \Rightarrow -B = 12}\)

\(\displaystyle{ -B = 0 \ 0001100}\)

Aby otrzymać liczbę przeciwną do liczby \(\displaystyle{ -B}\), czyli \(\displaystyle{ B = -12}\) należy dokonać negacji wszystkich bitów, a następnie dodać do otrzymanej liczby \(\displaystyle{ 1_{10} = 0 \ 0000001_{2}}\). Tak więc:

\(\displaystyle{ B = 1 \ 1110100 = -12_{10}}\)

Teraz dodajemy \(\displaystyle{ A}\) i \(\displaystyle{ B}\).
\(\displaystyle{ A+B = 0 \ 0001110 = 14_{10}}\)

Wszelkie przeniesienia poza bit znaku ignorujemy.
ODPOWIEDZ