Transcript Wykład 3

Podstawy
Techniki Cyfrowej
Wykład 3:
Arytmetyka dwójkowa
Dr inż. Marek Mika
Państwowa Wyższa Szkoła Zawodowa
im. Jana Amosa Komeńskiego
W Lesznie
2:10
Plan
• Działania na liczbach bez znaku
• Działania na liczbach ze znakiem
• Działania na liczbach w kodzie
BCD
• Działania na liczbach
zmiennoprzecinkowych
2:10
Działania na liczbach bez
znaku
•
•
•
•
•
•
•
2:10
Dodawanie
Odejmowanie
Sumowanie modulo 2
Mnożenie
Sprzętowa realizacja mnożenia
Dzielenie
Dzielenie metodą restytucyjną
Dodawanie liczb dwójkowych
2:10
Reguły jednopozycyjnego
dodawania liczb dwójkowych
2:10
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
Przykład
2:10
Sumowanie akumulacyjne
2:10
Sumowanie modulo 2
• Sumowanie, które nie uwzględnia przeniesień
(z pozycji niższej i na pozycję wyższą)
• Symbol: ⊕
• Reguły
2:10
0
0
0
0
1
1
1
0
1
1
1
0
Odejmowanie
2:10
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
Odejmowanie przez dodanie liczby
w kodzie uzupełnieniowym
• U1
– występuje tzw.
przeniesienie zwrotne,
które należy dodać do
wyniku
• U2
– występujące
przeniesienie oznacza
liczbę dodatnią, należy
je pominąć
2:10
Mnożenie
2:10
Mnożenie – przykład
2:10
Mnożenie – właściwości
2:10
Mnożenie – metoda
praktyczna
2:10
Dzielenie – metoda
porównawcza
2:10
Przykład – dzielenie bez reszty
2:10
Przykład – dzielenie z resztą
2:10
Dzielenie – metoda restytucyjna
• W każdym kroku odejmowany jest dzielnik (w
kodzie U2) i badany jest znak różnicy, jeśli jest
ujemny, to oznacza, że trzeba restytuować
poprzednią postać reszty częściowej (dodać
dzielnik w kodzie naturalnym)
• W szybszej metodzie nierestytucyjnej unika
się odtwarzania sumy częściowej
2:10
Działania na dużych
liczbach stałoprzecinkowych
• W realizacjach sprzętowych układy przeznaczone do
wykonywania operacji mają często pojemność jednego
bajta
• Działania na liczbach wielobajtowych wymagają
sekwencyjnego przetwarzania kolejnych bajtów
• No przykład przy dodawaniu dodaje się parami bajty
począwszy od najmniej znaczących i uwzględniając
przeniesienia z poprzednich sum
• Przeniesienie powstałe przy sumowaniu najstarszych
bajtów nosi nazwę nadmiaru lub przepełnienia
2:10
Działania arytmetyczne na
liczbach dwójkowych ze znakiem
2:10
Mnożenie i dzielenie
liczb ze znakiem
• Najprościej w kodzie ZM (mnożenie modułów,
znak wyznaczany operacją sumowania
modulo 2)
• W kodzie ZU2 można zastosować metodę
Bootha
2:10:03
Metoda Bootha
• Bada się pary sąsiednich bitów począwszy od najmniej
znaczącego bitu
• Zależnie od wartości bitowej danej pary wykonuje się
dodawanie, odejmowanie lub nic się nie robi
• Następnie wykonuje się przesuniecie arytmetyczne w
prawo i przechodzi się do następnej pary bitów
• Reguły:
2:10
Metoda Bootha – przykład
2:10
Działania arytmetyczne
w kodach BCD
2:10
Korekta dodawania w BCD 8421
2:10
Algorytm korekty dodawania
dwóch bajtów w BCD 8421
2:10
Odejmowanie w kodzie BCD 8421
• Zastępuje się dodawaniem
uzupełnienia odjemnika (do 9 lub
do 10)
2:10
Działania na liczbach
zmiennoprzecinkowych (1)
2:10
Działania na liczbach
zmiennoprzecinkowych (2)
• Właściwości dodawania i odejmowania:
– jeżeli w wyniku dodawania w mantysie sumy wystąpi
przeniesienie na pozycję znaku, to należy go
skorygować, przesuwając mantysę o jedną pozycję w
prawo i zwiększenie wykładnika o 1
– jeżeli w wyniku odejmowania w mantysie różnicy
wystąpi zero na najbardziej znaczącej pozycji to należy
znormalizować mantysę przesuwając ją w lewo tak
długo, aż na tej pozycji pojawi się 1 (nie dotyczy
mantysy zerowej), a wykładnik należy zmniejszyć o
liczbę odpowiadającą liczbie pozycji, o które została
przesunięta mantysa
2:10
Działania na liczbach
zmiennoprzecinkowych (3)
2:10
DZIĘKUJĘ ZA UWAGĘ
2:10