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..
[Systemy liczbowe] Odejmowanie ZM
-
- 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
Ostatnio zmieniony 21 lut 2015, o 14:13 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- 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
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.
\(\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.