Cyfrowy zapis informacji

Podobne dokumenty
Naturalny kod binarny (NKB)

Arytmetyka binarna - wykład 6

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Stan wysoki (H) i stan niski (L)

Wstęp do informatyki- wykład 1 Systemy liczbowe

Kodowanie informacji. Kody liczbowe

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Technologie Informacyjne

SYSTEMY LICZBOWE 275,538 =

1259 (10) = 1 * * * * 100 = 1 * * * *1

1.1. Pozycyjne systemy liczbowe

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Podstawy Informatyki

Kodowanie liczb całkowitych w systemach komputerowych

Technika cyfrowa Wprowadzenie

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Teoretyczne Podstawy Informatyki

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Systemy zapisu liczb.

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Zapis liczb binarnych ze znakiem

Pracownia Komputerowa wykład VI

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Arytmetyka stałopozycyjna

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Kod U2 Opracował: Andrzej Nowak

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Techniki multimedialne

Pracownia Komputerowa wykład V

Wstęp do informatyki- wykład 1

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Wprowadzenie do informatyki - ć wiczenia

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Architektura komputerów

Architektura komputerów

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Technika Cyfrowa i Mikroprocesorowa

Pracownia Komputerowa wykład IV

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Pozycyjny system liczbowy

Architektura komputerów

Materiały laboratoryjne. Kodowanie i liczby. dr inż. Zbigniew Zakrzewski. Z.Z. Podstawy informatyki

Pracownia Komputerowa wyk ad VI

Podstawy Informatyki

Wstęp do Informatyki

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Technologie Informacyjne Wykład 4

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

System Liczbowe. Szesnastkowy ( heksadecymalny)

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Arytmetyka liczb binarnych

Pracownia Komputerowa wyk ad V

Pracownia Komputerowa wyk ad IV

Systemy liczbowe używane w technice komputerowej

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Dr inż. Jan Chudzikiewicz Pokój 117/65 Tel Materiały:

Wydział Mechaniczny. Instrukcja do zajęć laboratoryjnych

DZIESIĘTNY SYSTEM LICZBOWY

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Podstawy Informatyki dla Nauczyciela

L6.1 Systemy liczenia stosowane w informatyce

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

ARYTMETYKA KOMPUTERA

LICZBY ZMIENNOPRZECINKOWE

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

Programowanie Niskopoziomowe

Systemy liczenia. 333= 3*100+3*10+3*1

PODSTAWY INFORMATYKI. Informatyka? - definicja

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Wprowadzenie do informatyki - ć wiczenia

Wprowadzenie do informatyki - ć wiczenia

Operacje arytmetyczne

przeniesienie pożyczka

Technika cyfrowa Układy arytmetyczne

Wstęp do informatyki- wykład 2

Adam Korzeniewski p Katedra Systemów Multimedialnych

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

Transkrypt:

F1-1 Cyfrowy zapis informacji Alfabet: uporządkowany zbiór znaków, np. A = {a,b,..., z} Słowa (ciągi) informacyjne: łańcuchy znakowe, np. A i = gdtr Długość słowa n : liczba znaków słowa, np. n(sbdy) = 4 Złożenie (konkatenacja): A i A j, np. gdtr sbdy = gdtrsbdy Inne symbole: & (VHDL), +, Alfabet dwójkowy: zbiór dwuznakowy, np. {L,H}, {0,1} Przyjmujemy definicję B = {0,1} B n n-tka uporządkowana, n-krotny iloczyn kartezjański zbiorów B Np. B 3 = {000, 001, 010, 011, 100, 101, 110, 111} Bit: element zbioru B (0 lub 1); słowo z n = 1 Tetrada (nibble), słowo czterobitowe: n = 4 Bajt: (byte), słowo ośmiobitowe: n = 8 Język: niepusty, skończony zbiór słów nad danym alfabetem Semantyka: znaczenia tych słów Składnia: reguły używania tych słów Format słowa: indeksowanie łańcucha znakowego Np. w języku VHDL: (czcionka Lucida Console) signal a : bit_vector(3 downto 0) := 1100 ; Indeksy: 3..0, czyli a(3) = 1, a(0) = 0 tu indeksowanie rozpoczyna się od prawej strony i wzrasta w lewo Jeśli zadeklarujemy signal b : bit_vector(0 to 3); tu indeksowanie rozpoczyna się od lewej strony i wzrasta w prawo to złożenie: b <= a(2 downto 1) & 11 ; oznacza przypisanie b = 1011 oraz b(1) = 0

F1-5 Kody liczbowe 1 Zapis liczb: słowa (łańcuchy znaków - cyfr) w określonym kodzie Kody naturalne: zapis pozycyjny, wagowy, o stałej podstawie pozycja i, waga w i = p i, podstawa p (2, 8, 10, 16) Lewostronne indeksowanie pozycji i: rozpoczyna się od prawej strony i wzrasta w lewo Alfabet liczbowy zawiera p znaków: a {0,1,..., p 1} Równoważniki dziesiętne L liczb A w kodzie o podstawie p 1) Liczba całkowita L 0: słowo n-znakowe A = a n-1 a n-2...a i...a 1 a 0, 2) Liczba ułamkowa 1>L 0: słowo m-znakowe A = a -1 a -2..a j...a -m+1 a -m, i LA ( ) LA ( ) n = 1 i = 0 ap i = 1 j= m i ap 3) Liczba rzeczywista L 0 z częścią całkowitą i ułamkową słowo (n + m)-znakowe A = a n-1 a n-2.. a 1 a 0 a -1 a -2..a -m+1 a -m, j j LA ( ) n = 1 k= m ap k k Naturalny kod dziesiętny (ND ): p = 10 Np. liczba A = 3629, L(A) = 3 10 3 + 6 10 2 + 2 10 1 + 9 10 0 3 najbardziej znacząca cyfra (MSD Most Significant Digit ) 9 najmniej znacząca cyfra (LSD Least Significant Digit ) inaczej 3 i = 0 LA ( ) = a 10 i, gdzie a 0 = 9, a 1 = 2, a 2 = 6 i a 3 = 3 i

F1-6 Kody liczbowe 2 Słowo n-znakowe może reprezentować p n nieujemnych Najmniejsza liczba: 0 Największa liczba całkowita: L max = p n 1 Największa liczba ułamkowa: L max = 1 p -n różnych liczb Np. czterocyfrowa liczba dziesiętna (ND), n = 4: Największa liczba całkowita: L max = 10 4 1 = 9999 Największa liczba ułamkowa: L max = 1 10-4 = 0.9999 Naturalny kod dwójkowy (NB): p = 2 1) Liczba całkowita L 0, n bitów: B = b n-1 b n-2...b i...b 1 b 0 n LB ( ) b 2, L min = 0, L max = 2 n 1 (np. n = 4, L max = 15) = 1 j = 0 i i 2) Liczba ułamkowa 1>L 0, m bitów: B = b -1 b -2..b j...b -m+1 b -m = 1 LB ( ) b 2 j, L min = 0, L max = 1 2 -m (np. m = 4, L max = 0.9375) j= m j 3) Liczba L 0 z częścią całkowitą i ułamkową słowo (n + m)-bitowe: B = b n-1 b n-2.. b 1 b 0 b -1 b -2..b -m+1 b -m n = 1 LB ( ) b 2 k= m Np. słowo 1011 2 może reprezentować liczbę nieujemną całkowitą: 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11 10 ułamkową: 1 2-1 + 0 2-2 +1 2-3 + 1 2-4 = 0.6875 10 k k

F1-7 Kody liczbowe 3 W słowie dwójkowym, np. 1001010 bit skrajny z lewej strony najbardziej znaczący bit MSB Most Significant Bit bit skrajny z prawej strony najmniej znaczący bit LSB Least Significant Bit Przy danej długości słowa (n), maksymalna liczba N różnych n-bitowych słów liczb dwójkowych N = 2 n Zatem do zakodowania m informacji (np. liczb) potrzebne są słowa o długości n min = RND(log 2 m) = RND(3.32 log 10 m) gdzie operator RND oznacza zaokrąglenie argumentu w górę do liczby całkowitej. Np. dla m = 7 n min = RND(2.81) = 3 dla m = 10 n min = RND(3.32) = 4 Kod szesnastkowy (HEX Hexadecimal ): p = 16 Znaki 0,1,..., 9,A,B,C,D,E,F A 10 10, B 11 10,..., F 15 10 Każda tetrada bitów jest zastępowana tylko jednym znakiem Np. 1011001001111100 2 B27C 16 Oznaczenia podstawy p przez przedrostek lub przyrostek: Np. p = 2 p = 16 B1010, 10010B, Google: 0b1101 $4BA7, C42AH, Google: 0xa1f6

F1-11 Konwersja liczb z kodu dziesiętnego na dwójkowy Dziesiętna liczba (część) całkowita L => liczba dwójkowa B B = b n-1...b 1 b 0 Kalkulator Google: L in binary (Enter), np. 174 in binary (Enter) = 0b10101110 Algorytm konwersji: iteracyjne dzielenie przez 2, dopóki nie otrzyma się wyniku dzielenia o zerowej części całkowitej. Np. L = 57 10 57/2 = 28 + ½ b 0 = 1 28/2 = 14 + 0 b 1 = 0 14/2 = 7 + 0 b 2 = 0 7/2 = 3 + ½ b 3 = 1 3/2 = 1 + ½ b 4 = 1 1/2 = 0 + ½ b 5 = 1 B = b 5 b 4 b 3 b 2 b 1 b 0 = 111001 2 Dziesiętna liczba (część) ułamkowa L => liczba dwójkowa B B = 0.b -1 b -2...b -m Kalkulator Google nie wykonuje konwersji liczb ułamkowych! Algorytm konwersji: iteracyjne mnożenie przez 2, dopóki nie otrzyma się wyniku mnożenia z zerową częścią ułamkową lub żądanej liczby bitów wyniku B. Np. L = 0.34 10 0.34 2 = 0.68 b -1 = 0 0.68 2 = 1.36 b -2 = 1 0.36 2 = 0.72 b -3 = 0 0.72 2 = 1.44 b -4 = 1 0.44 2 = 0.88 b -5 = 0 0.88 2 = 1.77 b -6 = 1 itd. B 0.b -1 b -2 b -3 b -4 b -5 b -6 = 0.010101 2

F1-12 Konwersja liczb z kodu dziesiętnego na szesnastkowy Liczba dziesiętna L => liczba szesnastkowa H Algorytm konwersji: H = h n-1...h 1 h 0.h -1 h -2...h -m Liczba (część) całkowita iteracyjne dzielenie przez 16, dopóki nie otrzyma się wyniku o zerowej części całkowitej Liczba (część) ułamkowa iteracyjne mnożenie przez 16, dopóki nie otrzyma się wyniku o zerowej części ułamkowej lub liczby m bitów wyniku H Np. L = 79.73 10 Część całkowita: 79/16 = 4, reszta 15 10 = F 16 = h 0 4/16 = 0, reszta 4 = h 1 Część ułamkowa: 0.73 16 = 11.68 h -1 = 11 10 = B 16 0.68 16 = 10.88 h -2 = 10 10 = A 16 0.88 16 = 14.08 h -3 = 14 10 = E 16 0.08 16 = 1.28 h -4 = 1 0.28 16 = 4.48 h -5 = 4 0.48 16 = 7.68 h -6 = 7 itd. H = h 1 h 0 h -1 h -2 h -3 h -4 h -5 h -6 = 4F.BAE147 16 Błąd zaokrąglenia: 0.68 16-6 Równoważna liczba dwójkowa (spacje są zbędne): B = 100 1111.1011 1010 1110 0001 0100 0111 W Google: (liczba dziesiętna) in hex (Enter) Np. 15 in hex (Enter) > 0xF 0x1F in decimal > 31, 0x1f in binary > 0b11111

F1-82 Arytmetyka dwójkowa - Dodawanie c n-1 c n-2 c i c 0 P = p n-1 p n-2 p i p 0 +Q = q n-1 q n-2 q i q 0 S = s n-1 s n-2... s i s 0 c n c n-1 c i+1 c 1 Wynik dodawania na pozycji i p i + q i + c i = c i+1 s i Przeniesienie na pozycję i Przeniesienie na pozycję i+1 Reguły dodawania liczb dwójkowych na pozycji i (i = 0,1,n-1) c i p i q i s i c i+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 suma modulo 2: s i = p i q i Wynik Y dodawania liczb P i Q oraz przeniesienia wstępnego c 0 : P + Q + c 0 = Y = c n S czyli L(Y) = 2 n c n + L(S) Przykład: Pozycja 4 3 2 1 0 P = 1 0 0 1 L(P) = 9 Q = 1 1 0 1 L(Q) = 13 Wynik Y = 1 0 1 1 0 L(Y) = 22 Przeniesienia: 1 1 c 4 c 1

F1-80 Arytmetyka dwójkowa - Uzupełnienia liczb Liczba zapisana w kodzie naturalnym o podstawie p może być również zapisana w kodzie uzupełnieniowym do podstawy p (oznaczenie Up) do podstawy zmniejszonej o 1, czyli p 1 (oznaczenie U(p-1)) Uzupełnienie U(p-1) liczby nieujemnej otrzymuje się przez odjęcie każdej cyfry tej liczby od p-1 Przykłady: U9 (347) = 652 U9 (67.324) = 32.675 U9 (0) = 9, U9 (0.0) = 9.9 Uzupełnienie Up liczby nieujemnej otrzymuje się przez dodanie jedynki na najmniej znaczącej pozycji jej uzupełnienia U(p-1) Przykłady: U10 (3410) = 6589 +1 = 6590 U10 (0.3947) = 9.6053 U10 (32.194) = 67.806 U10(0) = 0 Obliczanie uzupełnień liczby dwójkowej B U1(B) - dopełnienie - przez negację wszystkich bitów liczby B U2(B) - przez dodanie 1 na najniższej pozycji dopełnienia U1(B), albo przez przepisanie wszystkich mniej znaczących zer i pierwszej najmniej znaczącej jedynki słowa B oraz zanegowanie pozostałych bitów bardzo użyteczna reguła! Przykłady: Obliczyć uzupełnienia U1 i U2 liczby dwójkowej B = 110010: U1(110010) = 001101 U2(110010) = 001110

F1-81 Arytmetyka dwójkowa - Zapis liczb ze znakiem W systemie dwójkowym znakowi liczby przyporządkowany jest odrębny, najbardziej znaczący bit: 0 dla znaku + i 1 dla znaku Stosuje się trzy sposoby kodowania liczb rzeczywistych w zapisie dwójkowym ze znakiem: znak-moduł (ZM) znak-uzupełnienie do 1 (ZU1) znak-uzupełnienie do 2 (ZU2) ZM liczby dodatnie i ujemne mają taki sam moduł, a różnią się tylko bitem znaku: +12 10 01100 2 +0.75 10 01100 2 12 10 11100 2 0.75 10 11100 2 ZU1 moduł liczb ujemnych jest kodowany w uzupełnieniu do 1: +12 10 01100 2 +0.75 10 01100 2 12 10 10011 2 0.75 10 10011 2 ZU2 moduł liczb ujemnych jest kodowany w uzupełnieniu do 2: +12 10 01100 2 +0.75 10 01100 2 12 10 10100 2 0.75 10 10100 2 Przykłady liczb dwójkowych ze znakiem Liczba dziesiętna ZM ZU1 ZU2-8 (-1) 1.000-7 (-0.875) 1.111 1.000 1.001-6 (-0.75) 1.110 1.001 1.010-5 (-0.625) 1.101 1.010 1.011-4 (-0.5) 1.100 1.011 1.100-3 (-0.375) 1.011 1.100 1.101-2 (-0.25) 1.010 1.101 1.110-1 (-0.125) 1.001 1.110 1.111-0 1.000 1.111 0 0.000 +0 0.000 0.000 1 (0.125) 0.001 0.001 0.001 7 (0.875) 0.111 0.111 0.111

F1-83 Odejmowanie liczb dwójkowych bez znaku Do odjemnej dodaje się odjemnik zapisany w uzupełnieniu do podstawy p albo podstawy zmniejszonej o 1 (p 1). Przykład: 110110 (54) 011110 (30) Odejmowanie dwójkowe w kodzie U1 54 30: 30 54: 110110 011110 100001 U1(011110) 001001 U1(110110) 0100111 1010111 Przeniesienie zwrotne: 1 wynik dodatni Przeniesienie zwrotne: 0 wynik ujemny w U1 1 Korekcja wyniku 011000 (+24) 100111 L(011000) = 24 Bit przeniesienia zwrotnego służy również do określenia znaku wyniku! Odejmowanie dwójkowe w kodzie U2 54 30: 30 54: 110110 011110 100010 U2(011110) 0 0101000 1011000 Pomijamy bit nadmiaru 1 wynik dodatni 01010 U2(110110) Pomijamy bit nadmiaru 0 wynik ujemny w U2 011000 (+24) 101000 L(011000) = 24 Pomijany bit nadmiaru służy do określenia znaku wyniku!

F1-84 Dodawanie liczb wielobajtowych bez znaku Przykład (46 813 + 52 388 = 99 201) 10 (B6DD + CCA4 = 18381) 16 bajt 1 B 6 bajt 0 D D C C A 4 1011 0110 1101 1101 + 1100 1100 + 1010 0100 1 1000 0011 1000 0001 Przepełnienie, nadmiar (overflow) Przeniesienie międzybajtowe Dodawanie liczb dwójkowych ze znakiem Zapis P Q jest równoważny działaniu (+P) + ( Q) Liczby ze znakiem są zapisywane w formacie ZU1 albo ZU2 Dodawanie jest wykonywane wraz z bitem znaku! Przykład użycia kodu ZU1 +12 0.001100 ZU1(+12) 12 1.110011 ZU1( 12) + 37 1.011010 ZU1( 37) + +37 0.100101 ZU1(+37) 25 1.100110 25 w ZU1 +25 10.011000 U1(100110) = 011001 L(011001) = 25 10 Przykład użycia kodu ZU2 1 Przeniesienie zwrotne 0.011001 +25 w ZU1 +12 0.001100 ZU2(+12) 12 1.110100 ZU2( 12) + 37 1.011011 ZU2( 37) + +37 0.100101 ZU2(+37) 25 1.100111 25 w ZU2 +25 10.011001 +25 w ZU2 Bit pomijany! J. Kalisz, WAT, 2008

F1-85 Nadmiar przy dodawaniu liczb ze znakiem Jeżeli obydwie dodawane liczby są dodatnie albo ujemne, to wystąpienie przeniesienia 1 z sumy modułów na pozycję znaku zmienia znak wyniku. Wówczas wynik jest błędny! Przykład z użyciem kodu ZU2 Bit znaku +69 0.1000101 +103 0.1100111 +172 1.0101100 84 w ZU2? c m = 1 c z = 0 c m przeniesienie z modułu sumy c z przeniesienie z bitu znaku TEST NADMIARU czyli błąd występuje gdy te bity przeniesień mają różne wartości. Aby wyeliminować możliwość wystąpienia błędu, należy zwiększyć długość słowa danych przynajmniej o 1 bit +69 0.01000101 +103 0.01100111 +172 0.10101100 +172 wynik poprawny Bit znaku c z c m = 1 Inny przykład: dodatkowy bit uzupełnienie formatu -39 1.11011001 39 = 0100111-115 1.10001101-154 11.01100110-154 wynik poprawny Bit znaku W porównaniu z kodem U2 potrzebne są dwa dodatkowe bity! J. Kalisz, WAT, 2008

Nadmiar przy dodawaniu liczb ze znakiem Np. 4 + ( 15) = 19 NB(4) = 100, NB(15) = 1111 wyrównujemy formaty: NB(4) = 0100 obliczamy uzupełnienia: U2(4) = 1100, U2(15) = 0001 Spróbujmy dodać 4 + ( 15) w kodzie ZU2 1.1100 1.0001 10.1101 +13??? Przeniesienie z pozycji znaku c z = 1 i z pozycji MSB modułu c m = 0 Aby uniknąć błędu: Test nadmiaru: c z c m = 1 ERROR!!! po wyrównaniu formatów argumentów, zwiększamy formaty o 1 bit NB(4) = 00100, NB(15) = 01111 obliczamy uzupełnienia U2(4) = 11100, U2(15) = 10001 dodajemy argumenty w kodzie ZU2 1.11100 1.10001 11.01101 aby otrzymać wynik w kodzie ZM, obliczamy U2(01101) = 10011 = 19 10 OK.! WNIOSKI 1. JEŚLI TRZEBA DODAWAĆ LICZBY W KODZIE ZU2 KTÓRE MOGĄ BYĆ OBYDWIE DODATNIE LUB OBYDWIE UJEMNE TO NALEŻY ZWIĘKSZYĆ DŁUGOŚĆ SŁOWA MODUŁU O 1 BIT 2. DŁUGOŚĆ SŁOWA ARGUMENTÓW PRZY STOSOWANIU KODU ZU2 JEST WIĘKSZA O DWA BITY (1 BIT ZNAKOWY + 1 BIT DODATKOWY) W PORÓWNANIU ZE STOSOWANIEM KODU U2 (bez uwzględnienia bitu przeniesienia) J. Kalisz, WAT, 2008