






Studiuj dzięki licznym zasobom udostępnionym na Docsity
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Przygotuj się do egzaminów
Studiuj dzięki licznym zasobom udostępnionym na Docsity
Otrzymaj punkty, aby pobrać
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Społeczność
Odkryj najlepsze uniwersytety w twoim kraju, według użytkowników Docsity
Bezpłatne poradniki
Pobierz bezpłatnie nasze przewodniki na temat technik studiowania, metod panowania nad stresem, wskazówki do przygotowania do prac magisterskich opracowane przez wykładowców Docsity
Notatki dotyczące tematów z dziedziny informatyki: zagadnienia na egzamin;metody reprezentacji liczb całkowitych, algorytmy mnożenia liczb binarnych.
Typologia: Egzaminy
1 / 12
Ta strona nie jest widoczna w podglądzie
Nie przegap ważnych części!
a) w zapisie znak-moduł, własności reprezentacji
Metody reprezentacji: W tej reprezentacji daną liczbę możemy zapisać według wag systemu binarnego na N-1 bitach. Najstarszy bit (nazywany BITEM ZNAKU), służy jedynie do określenia czy liczba jest nieujemna (ustawiony na „0”) albo niedodatnia (ustawiony na „1”). W związku z tym występują dwie reprezentacje zera: +0 (00000000ZM) i -0 (10000000ZM).
Jednocześnie wpływa to na zakres liczb jaki można przedstawić używając kodowania ZM na n bitach:
Dla 8 bitów (1 bajt) są to liczby od -127 do 127.
Własności:
Przykłady: Zapis liczby -13 na 8 bitach: bit B 7 B 6 B 5 B 4 B 3 B 2 B 1 B 0
wartość 1 0 0 0 1 1 0 1
waga +/- 26 25 24 23 22 21 20
b) w zapisie uzupełnień do 1, własności reprezentacji
W systemie U1 wszystkie bity zapisu liczby posiadają swoje wagi. Najstarszy bit jest bitem znaku i ma wagę równą (-2n-1+1), gdzie n oznacza ilość bitów w zapisie liczby. Pozostałe bity posiadają wagi takie jak w naturalnym systemie dwójkowym.
Bit znaku przyjmuje wartość 0 dla liczb dodatnich, a dla liczb ujemnych wartość 1 (ponieważ tylko waga tej pozycji jest ujemna, to jest to jedyny sposób na otrzymanie wartości ujemnej). Cechą charakterystyczną kodu U1 jest to, że liczbę przeciwną do danej tworzy poprzez negację wszystkich bitów.
c) w zapisie uzupełnień do 2, własności reprezentacji
Obliczanie U2 : Cyfry mnożymy przez wagi pozycji, na których się znajdują. Waga bitu znakowego jest ujemna. Sumujemy iloczyny.
bn − 1 bn − 2 ⋯ b 1 b 0 U2 =∑ i = 0
n − 2 bi ⋅ 2 i^ − bn − 1 2 n −^1 , gdzie
b ∈{ 0 , 1 } - bit, n (^) - liczba bitów przechowywanej liczby Zakres U2 : x U2 ∈[− 2 n −^1 , 2 n −^1 − 1 ] (^) dla liczby zapisanej na n bitach.
Algorytm znajdowania uzupełnienia do U2 : Sposób 1: Zaneguj wszystkie bity i dodaj 1 (gdyż ujemnych liczb jest o 1 więcej).
1
0 0 1 1
1 1 0 1 (-2)
1 1 1
0 0 1 0
0 0 0 0
0 0 0 1 1
1 1 1
1 1 1 0
1 1 0 0
1 1 0 1 (-2)
Dodawanie i odejmowanie w systemie U2 jest najprostsze ze wszystkich ponieważ wykonuje się je identycznie jak zwyczajne dodawanie i odejmowanie na liczbach binarnych. Przeniesienie w tym przypadku zarówno przy dodawaniu jak i odejmowaniu ignorujemy. Przykłady: 3 + 3 0 0 1 1
0 1 1 0 6
b) układ półsumatora, układ sumatora – budowa i zasada działania
Półsumator : Dodawanie cyfr realizowane jak w przypadku liczb dziesiętnych (suma i przeniesienie):
A B Carry Sum
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Sumator jednobitowy :
A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 1
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
Sumator n-bitowy z przeniesieniem szeregowym :
Zalety Wady
Sumator n-bitowy z przeniesieniem równoległym :
b) algorytm Bootha mnożenie liczb w zapisie U2, schemat blokowy zasada działania
Zasada działania: Umieszczamy mnożną i mnożnik odpowiednio w rejestrach M i Q. Dodatkowo wprowadzamy rejestry A i jednobitowy rejestr Q-1 , którym początkowo ustawiamy wartości 0. W rejestrze Q-1 będziemy zapisywać najmłodszy bit z Q po przesunięciu. Musimy również wiedzieć, ile zajmuje nasza liczba w bitach, bądź ilu bitowe są rejestry w których przechowujemy liczby. Przeglądamy mnożnik Q bit po bicie. Dodatkowo bierzemy bit leżący po prawej stronie badanego bitu i sprawdzamy czy oba bity są różne od siebie. Jeśli mamy kombinację 10, to rejestrowi A przypisujemy A-M. Jeśli mamy kombinację 01, to rejestrowi A przypisujemy A+M. Natomiast w przypadku, gdy oba bity są jednakowe (00 lub
- w prawo rejestry A , Q , Q-1 i dekrementujemy licznik bitów. Powyższe czynności powtarzamy, aż licznik bitów będzie równy 0. Wynik mnożenia jest zapisany w rejestrach A i Q.
Przykład: 3 ∗ (^4) ( 10 )= (^12) ( 10 )= 0011 ∗ (^0100) ( 2 )= (^00001100) ( 2 ) A Q Q-1 M 0000 0100 0 0011 N = 3 stan początkowy 0000 0010 0 0011 N = 3 >> 0000 0001 0 0011 N = 2 >> 1101 0001 0 0011 N = 1 A <- A - M 1110 1000 1 0011 N = 1 >> 0001 1000 1 0011 N = 0 A <- A + M 0000 1100 0 0011 N = 0 >>
a) budowa liczby zmiennoprzecinkowej oraz wpływ poszczególnych elementów liczby na zakres i dokładność danej reprezentacji zmiennoprzecinkowej
Standard IEE754 reprezentacji liczb zmiennoprzecinkowych :
Standard stosowany w dzisiejszych czasach. Mówi, że każdą liczbę x ≠ 0 można zapisać w postaci: (^) x = s ⋅ m ⋅ Bc^ , gdzie:
Jednakże na komputerze nie jesteśmy w stanie przeznaczyć nieskończenie wiele pamięci do precyzyjnego zapisu liczby zmiennoprzecinkowej. Jako, że nasze możliwości są ograniczone, a zbiór liczb rzeczywistych jest zbiorem gęstym (pomiędzy każdą parą liczb różnych od siebie istnieje nieskończenie wiele liczb) jesteśmy zmuszeni trochę oszukiwać.
Tak naprawdę na komputerze nie jest przechowywana ani cała cecha, ani cała mantysa. Realistyczny sposób przechowywania wygląda tak: rd x =− 1 e^ 1 f z − b^ , gdzie
Jako, że chcielibyśmy móc swobodnie operować zakresem liczby tak na lewo jak i na prawo cecha zapisana jest w kodzie z nadmiarem. Jeśli więc bias =^127 , a cecha = 12 , to jej wartość wykorzystana przez komputer będzie równa 12 − 127 =− 115. Pozwoli to na przesunięcie przecinka o 115 miejsc w lewo. Bity przeznaczone na cechę mają szczególne znaczenie, jeśli wszystkie bity są zerami lub jedynkami, co zostanie pokazane później. Stąd: Maksymalna wartość 4-bitowej cechy: 1110 // a nie 1111 gdyż wszystkie bity ustawione na 1 mają specjalną wartość Minimalna wartość 4-bitowej cechy: 0001 // a nie 0000 gdyż wszystkie bity ustawione na 0 mają specjalną wartość.
Wartości specjalne :
przeznaczonych na wykładnik ( n cyfr dla wartości i 1 dla znaku wykładnika). Uznaje się również, że jedna dodatkowa pozycja (najstarsza) zarezerwowana jest dla zapisu znaku całej liczby. Wówczas wartości maksymalne i minimalne dla M i E określone są następująco:
Wykładnik E:
Stąd najmniejsza i największa liczba dodatnia możliwa do zapisania w takiej reprezentacji to:
Błąd względny reprezentacji wynosi
Bm −^1
(inaczej: waga najmniej znaczącej cyfry mantysy).
Błędów bezwzględnych na ogół się nie podaje.
Błąd reprezentacji liczb zmiennoprzecinkowych.
d) budowa binarnej liczby zmiennoprzecinkowej
Liczba zmiennoprzecinkowa jest komputerową reprezentacją liczb rzeczywistych zapisanych w postaci wykładniczej (zwanej również notacja naukową). Ze względu na wygodę operowania na takich liczbach przyjmuje się ograniczony zakres na mantysę i cechę. Ogranicza to precyzję i zakres liczby.
Wartość liczby jest określana wg wzoru x = S ⋅ M ⋅ BE^ , gdzie:
e) własności podstawowych operacji arytmetycznych na liczbach zmiennoprzecinkowych (dodawanie, odejmowanie, mnożenie, dzielenie)
Arytmetyka zmiennoprzecinkowa nie jest łączna. To znaczy że dla z , y , z mogą zachodzić różności: x y z ≠ x y z x ⋅ y ⋅ z ≠ x ⋅ y ⋅ z
dodawanie i odejmowanie mnożenie i dzielenie
mamy dwie liczby: x 1 = M (^) 1 ⋅ BE^1 x 2 = M (^) 2 ⋅ BE^^2 oraz x 1 x 2 wówczas: x 1 ± x 2 = M 1 ± M (^) 2 ⋅ BE^^2 − E^^1 ⋅ BE^^1
mamy dwie liczby: x 1 = S (^) 1 ⋅ M (^) 1 ⋅ BE^1 x 2 = S (^) 2 ⋅ M (^) 2 ⋅ BE^^2 wówczas: x 1 ⋅ x 2 = S 1 ⋅ S 2 ⋅ M (^) 1 ⋅ M (^) 2 ⋅ BE^^1 E^^2 x 1 / x 2 = S 1 ⋅ S 2 ⋅ M (^) 1 / M (^) 2 ⋅ BE^1 ^ E^^2
Do zapisu liczby stałoprzecinkowej przeznaczona jest z góry określona ilość cyfr dwójkowych (bitów), a pozycję przecinka ustala się arbitralnie, w zależności od wymaganej dokładności. Podziału na część całkowitą i ułamkową dokonuje arbitralnie projektant systemu lub programista.
Np.: mając do dyspozycji słowo 32-bitowe, można wydzielić 24 bity na część całkowitą, 8 bitów na część ułamkową, albo po 16 bitów na część całkowitą i ułamkową, albo 30 bitów na część całkowitą i zostawić tylko 2 bity do zapisu części ułamkowej.
Wartość liczby stałoprzecinkowej jest określana tak jak w pozycyjnym systemie liczbowym. Wagi bitów części całkowitej mają wartości (kolejno, od najbardziej znaczącego bitu): 2 k −^1 20 , Wagi bitów części ułamkowej mają wartości: 2 −^1 2 − n^.
Dokładność reprezentacji wynosi 2 − n^ , czyli jest równa wadze najmniej znaczącego bitu części ułamkowej.