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