Kod znak-moduł (ZM)
Transkrypt
Kod znak-moduł (ZM)
Wprowadzenie do informatyki - ć wiczenia Kod znakznak-moduł (ZM) dr inż . Izabela Szczęch WSNHiD Ćwiczenia z wprowadzenia do informatyki Reprezentacja liczb całkowitych § Jak kodowany jest znak liczby? § Omó wimy dwa sposoby kodowania liczb ze znakiem: § kod znak-moduł(ZM), § kod uzupełnień do dwu (U2). 2 Izabela Szczęch 1 Wprowadzenie do informatyki - ć wiczenia Plan zaję ć n Kod ZM – definicja i konwersja n Zakresy liczb reprezentowanych w kodzie ZM n Arytmetyka w kodzie ZM 3 Kod znakznak-moduł definicja i konwersja Izabela Szczęch 2 Wprowadzenie do informatyki - ć wiczenia Kod ZM § Kod znak-modułto kod, w któ rym: § najstarszy bit liczby jest bitem znaku § wszystkie bity liczby poza najstarszym mają takie same znaczenie jak w naturalnym kodzie binarnym § Jeśli przyjmiemy do zapisu liczb format całkowity n-bitowy, to liczby w kodzie znak-modułmają następują cą postać: cn-1 cn-2 cn-3 ... c2 c1 c0 znak moduł Koncepcyjnie binarny kod ZM jest taki sam jak uż ywany przez nas system dziesiętny, któ ry ró wnież na począ tku ma zapisany znak liczby, a dalej jej wartość czyli moduł § Kod znak-modułwystępuje też pod nazwami: ZM, Z-M, SM (Signed Magnitude), S+M 5 Kod ZM Wartość n-bitowej, całkowitej liczby w kodzie ZM obliczamy wg wzoru: w(ZM) = (-1)bit znaku x modułliczby Rozpisują c poszczegó lne bity otrzymujemy w binarnym kodzie ZM: cn-1cn-2...c2c1c0 (ZM)= (-1) cn-1 (cn-22n-2 + ... + c222 + c121 + c020)(10) gdzie c - cyfra dwó jkowa 0 lub 1, n - liczba bitó w w zapisie liczby Bit znaku: 0 – liczba dodatnia, 1 – liczba ujemna 6 Izabela Szczęch 3 Wprowadzenie do informatyki - ć wiczenia Konwersja z kodu ZM na system dziesię tny - przykłady § 10110111(ZM) = (-1)1 x (25 + 24 + 22 + 21 + 20) = - (32 + 16 + 4 + 2 + 1) = - 55(10) § 00110111(ZM) = (-1)0 x (25 + 24 + 22 + 21 + 20) = 1 x (32 + 16 + 4 + 2 + 1) = 55(10) 7 Konwersja z systemu dziesię tnego na kod ZM 1. Jeśli liczba jest dodatnia, to bit znaku ma wartość 0. W przeciwnym razie bit znaku ma wartość 1. 2. Przeliczamy wartość bezwzględną liczby (czyli jej moduł) z zapisu dziesiętnego na dwó jkowy. 3. Otrzymane bity modułu uzupełniamy w miarę potrzeby bitami o wartości 0, aby otrzymać ustaloną w formacie liczbę bitó w dla modułu. 4. Przed bitami modułu wpisujemy bit znaku i w ten sposó b otrzymujemy zapis ZM 8 Izabela Szczęch 4 Wprowadzenie do informatyki - ć wiczenia Konwersja z systemu dziesię tnego na kod ZM - przykłady Przekształć poniż sze liczby dziesiętne na kod ZM na 8 bitach 1. liczba 13(10) § liczba jest dodatnia, więc bit znaku = 0 § zapisujemy binarnie modułliczby: |13(10)| = 13(10) = 1101 § uzupełniamy zapis do zadanego formatu 13(10) = 0001101 § dopisujemy przed liczbą bit znaku: 13(10) = 00001101(ZM) 2. liczba -13(10) § liczba jest ujemna, więc bit znaku = 1 § zapisujemy binarnie modułliczby: |-13(10)| =13(10) = 1101 § uzupełniamy zapis do zadanego formatu 13(10) = 0001101 § dopisujemy przed liczbą bit znaku: 13(10) = 10001101(ZM) 9 Zakres liczb w kodzie ZM Izabela Szczęch 5 Wprowadzenie do informatyki - ć wiczenia Zakres liczb w kodzie ZM § Jaka jest najmniejsza i największa wartości liczby, któ rą da się przedstawić w danym kodzie ZM? § Łatwo zauważ yć, ż e w obu przypadkach modułmusi mieć wartość maksymalną , a bit znaku 1 dla wartości najmniejszej i 0 dla wartości największej. Zadania: 1. Wyznacz zakres liczb dziesiętnych reprezentowanych w kodzie ZM na 4, 8 i 16 bitach. 2. Podaj ogó lny wzó r na określają cy zakres n-bitowych liczb w kodzie ZM. 11 Zakres liczb w kodzie ZM § Zakres n-bitowej liczby w kodzie ZM określony jest wzorem: Z(ZM) = <<-2n-1 + 1, 2n-1 - 1> 12 Izabela Szczęch 6 Wprowadzenie do informatyki - ć wiczenia Arytmetyka w kodzie ZM Dodawanie i odejmowanie w ZM § Aby otrzymywać poprawne wyniki dodawania czy odejmowania liczb w reprezentacji ZM musimy postępować według regułzebranych w poniż szych tabelkach. Reguły dodawania liczb w kodzie ZM wynik = a(ZM) + b(ZM) znak a(ZM) znak b(ZM) 0 0 1 1 0 1 1 0 operacja dodawanie modułó w dodawanie modułó w odejmowanie modułu mniejszego od modułu większego znak wyniku 0 1 znak większego modułu 14 Izabela Szczęch 7 Wprowadzenie do informatyki - ć wiczenia Dodawanie i odejmowanie w ZM Reguły odejmowania liczb ZM wynik = a(ZM) - b(ZM) znak a(ZM) 0 znak b(ZM) 0 1 1 0 1 1 0 operacja odejmowanie modułu mniejszego od modułu większego znak wyniku Znak a(ZM), jeśli moduł ten jest większy od modułu b(ZM). Inaczej znak przeciwny. dodawanie modułó w dodawanie modułó w 0 1 15 Dodawanie i odejmowanie w ZM - przykłady § Przyjmijmy dwó jkową reprezentację znak-moduł na 8-miu bitach: -5 + 100=95 -100 + (-5)=-105 0 11 0 0 1 0 0 1 11 0 0 1 0 0 1 - 00 0 0 1 0 1 1 + 00 0 0 1 0 1 0 10 1 1 1 1 1 1 11 0 1 0 0 1 od większego modułu (czyli liczby 100) odejmujemy mniejszy (czyli 5), a bit znaku ustawiamy zgodnie ze znakiem większego modułu (czyli na 0) dodają c liczby o tym samym znaku, dodajemy ich moduły, a bit znaku ustawiamy zgodnie ze znakiem dodawanych liczb 16 Izabela Szczęch 8 Wprowadzenie do informatyki - ć wiczenia Kod ZM –nadmiar i niedomiar § Ponieważ liczby zapisane w systemie ZM posiadają ustalony format (ilość bitó w jest stała), to przy wykonywaniu operacji arytmetycznych moż e dochodzić do nadmiaró w (wynik większy niż moż na przedstawić za pomocą dostępnych bitó w modułu) lub niedomiaró w w.. § Przy dodawaniu i odejmowaniu wg opisanych regułdla liczb ZM nadmiar (niedomiar) moż na wykryć, jeśli wystą piło przeniesienie (lub poż yczka) na pozycję znakową . 17 Kod ZM –nadmiar i niedomiar § Przyjmują c dwó jkową reprezentację znak-moduł na 8-miu bitach, wyniki poniż szych działań nie mogą być reprezentowane (występuje nadmiar i niedomiar): 100+40=nadmiar -100-40=niedomiar 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 0 + 0 1 0 1 0 0 0 0 + 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 przeniesienie na bit znaku przeniesienie na bit znaku 18 Izabela Szczęch 9 Wprowadzenie do informatyki - ć wiczenia Kod ZM –podsumowanie § Koncepcyjnie prosty, lecz stwarzałpoważ ne problemy przy wykonywaniu operacji arytmetycznych § Bit znakowy posiada zupełnie inne znaczenie od pozostałych bitó w i nie uczestniczy bezpośrednio w operacjach arytmetycznych. § Niejednoznaczność!!! - wartość 0 posiada dwa słowa kodowe: 0000 oraz 1000. 19 Arytmetyka w kodzie ZM -zadania Zadania: Stosują c dwó jkową reprezentację znakznak-modułna 88-miu bitach zapisz następują ce liczby całkowite i wykonaj działania: a) b) c) d) e) 18 + 20 -30 + ((-25) -20 + 60 120 + 32 -65 + ((-84) 20 Izabela Szczęch 10