Post on 21-Jan-2016
description
PodstawyTechniki Cyfrowej
Dr inż. Marek MikaPaństwowa Wyższa Szkoła Zawodowaim. Jana Amosa Komeńskiego W Lesznie
Wykład 3: Arytmetyka dwójkowa
06:13 PM
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
06:13 PM
Działania na liczbach bez znaku
• Dodawanie• Odejmowanie• Sumowanie modulo 2• Mnożenie• Sprzętowa realizacja mnożenia• Dzielenie• Dzielenie metodą restytucyjną
06:13 PM
Dodawanie liczb dwójkowych
06:13 PM
Reguły jednopozycyjnego dodawania liczb dwójkowych
06:13 PM
Przykład
06:13 PM
Sumowanie akumulacyjne
06:13 PM
Sumowanie modulo 2
• Sumowanie, które nie uwzględnia przeniesień (z pozycji niższej i na pozycję wyższą)
• Symbol: ⊕• Reguły
06:13 PM
Odejmowanie
06:13 PM
Odejmowanie przez dodanie liczby w kodzie uzupełnieniowym
06:13 PM
• 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ąć
Mnożenie
06:13 PM
Mnożenie – przykład
06:13 PM
Mnożenie – właściwości
06:13 PM
Mnożenie – metoda praktyczna
06:13 PM
Dzielenie – metoda porównawcza
06:13 PM
Przykład – dzielenie bez reszty
06:13 PM
Przykład – dzielenie z resztą
06:13 PM
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
06:13 PM
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
06:13 PM
Działania arytmetyczne na liczbach dwójkowych ze znakiem
06:13 PM
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
06:13:39 PM
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:
06:13 PM
Metoda Bootha – przykład
06:13 PM
Działania arytmetyczne w kodach BCD
06:13 PM
Korekta dodawania w BCD 8421
06:13 PM
Algorytm korekty dodawania dwóch bajtów w BCD 8421
06:13 PM
Odejmowanie w kodzie BCD 8421
• Zastępuje się dodawaniem uzupełnienia odjemnika (do 9 lub do 10)
06:13 PM
Działania na liczbach zmiennoprzecinkowych (1)
06:13 PM
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
06:13 PM
Działania na liczbach zmiennoprzecinkowych (3)
06:13 PM
DZIĘKUJĘ ZA UWAGĘ
06:13 PM