AK opracowanie zagadnien na egzamin 2011 - Notatki - Informatyka - Część 1, Notatki'z Informatyka. Opole University
Kowal_86
Kowal_868 marca 2013

AK opracowanie zagadnien na egzamin 2011 - Notatki - Informatyka - Część 1, Notatki'z Informatyka. Opole University

PDF (610 KB)
12 strona
1000+Liczba odwiedzin
Opis
Notatki dotyczące tematów z dziedziny informatyki: zagadnienia na egzamin;metody reprezentacji liczb całkowitych, algorytmy mnożenia liczb binarnych.
20punkty
Punkty pobierania niezbędne do pobrania
tego dokumentu
Pobierz dokument
Podgląd3 strony / 12
To jest jedynie podgląd.
3 shown on 12 pages
Pobierz dokument
To jest jedynie podgląd.
3 shown on 12 pages
Pobierz dokument
To jest jedynie podgląd.
3 shown on 12 pages
Pobierz dokument
To jest jedynie podgląd.
3 shown on 12 pages
Pobierz dokument

ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH ZAGADNIENIA NA EGZAMIN

I ARYTMETYKA KOMPUTERÓW 1. Metody reprezentacji liczb całkowitych.

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:

– liczbę przeciwną tworzymy za pomocą negacji najstarszego bitu (bitu znaku)

– są dwie reprezentacje zera

Przykłady: Zapis liczby -13 na 8 bitach:

bit B7 B6 B5 B4 B3 B2 B1 B0

wartość 1 0 0 0 1 1 0 1

waga +/- 26 25 24 23 22 21 20

1

docsity.com

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−1bn−2⋯b1 b0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 , 2n−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).

2

docsity.com

Sposób 2:

1. Zacznij od pierwszego prawego bitu.

2. Przepisuj wartości bitów 0, aż natkniesz się na bit 1.

3. Ten bit też przepisz jako 1.

4. Pozostałe bity przepisz zanegowane.

np. (szare bity to te, które nie zostały zanegowane)

x U2  : 1 1 0 1 0 0 0 0

bit nr: 7 6 5 4 3 2 1 0

xU2 : 0 0 1 1 0 0 0 0

Własności:

• Dokładnie jedna reprezentacja 010 : 00000000U2  (dla 8-bitowych liczb).

• Zakres dla 8-bitowych liczb wynosi [−27 , 27−1]=[−128,127] .

• Najstarszy bit (MSB) traktowany jako bit znaku (0- liczba dodatnia, 1- ujemna).

2. Dodawanie liczb całkowitych.

a) dodawanie liczb całkowitych w zapisach: U1, U2, Z-M

Z-M:

W dodawaniu w tym systemie biorą udział tylko moduły liczb, bit odpowiedzialny za znak (MSB) nie jest brany pod uwagę w dodawaniu. Pełni on specjalną funkcję: przy dodawaniu jednej liczby dodatniej (0 na ostatnim miejscu) i jednej ujemnej (1 na ostatnim miejscu) wynik ma znak zależny od większego modułu, wtedy zamiast dodawania wykonujemy odejmowanie modułu mniejszego od modułu większego. Kiedy obie liczby są dodatnie wynik jest dodatni, natomiast kiedy obie ujemne wynik jest ujemny, w obu tych przypadkach wykonujemy zwykłe dodawanie modułów (wykonywane jest tak jak zwyczajne dodawanie na liczbach binarnych).

Przykłady:

3 + 2 0 0 1 1

+ 0 0 1 0 0 1 0 1

5

(-3) + (-2) 1 0 1 1

+ 1 0 1 0 1 1 0 1 (-5)

4 + (-6) 1 1 1 0

- 0 1 0 0 1 0 1 0 (-2)

5 + (-3) 0 1 0 1

- 1 0 1 1 0 0 1 0

2

U1:

Dodawanie liczb U1 odbywa się zgodnie z zasadami dodawania liczb binarnych. Jeśli występuje jednak przeniesienie poza bit znaku, nie można go po prostu przepisać na początek nowej liczby, tylko trzeba dodać tą jedynkę do nowej liczby.

Przykłady:

3

docsity.com

3 + 2 1

0 0 1 1

+ 0 0 1 0

0 1 0 1

5

3 + (-5) 1

0 0 1 1 + 1 0 1 0

1 1 0 1 (-2)

2 + (-1) 1 1 1

0 0 1 0 + 1 1 1 0

0 0 0 0 + 0 0 0 1

0 0 0 1 1

(-1) + (-1) 1 1 1

1 1 1 0 + 1 1 1 0

1 1 0 0 + 0 0 0 1

1 1 0 1 (-2)

U2:

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 0 1 1 0 1 1 0

6

5 + (-4) 0 1 0 1

+ 1 1 0 0 1 0 0 0 1

1

5 – 4 0 1 0 1

- 0 1 0 0 0 0 0 1

1

(-2) - 3 1 1 1 0

- 0 0 1 1 1 0 1 1 (-5)

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:

4

docsity.com

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:

•  - sumatory pełne.

• Połączone są kaskadowo.

• Przeniesienie przekazywane kaskadowo.

• Bit ostatniej sumy wyznaczony po wyliczeniu wszystkich przeniesień.

Zalety Wady

• Prostota.

• Możliwość łatwego rozszerzenia liczby bitów.

• Mała szybkość działania.

Sumator n-bitowy z przeniesieniem równoległym:

5

docsity.com

• Przeniesienie generowane jest przez blok generacji przeniesień.

• Gdy tylko wartość przeniesienia zostanie wygenerowana, wszystkie bloki  mogą zwrócić wartość bez oczekiwania na poprzednie.

C 0=const .

Zalety Wady

• Szybkość działania.

• Skomplikowany układ.

• Nie jest tak łatwo rozszerzalny, jak szeregowy.

• Zmiana liczby bitów wymaga modyfikacji bloku generacji przeniesień.

Ogólnie:

• Sumator n-bitowy - układ kombinacyjny przyjmujący na wejście składniki n- bitowe A, B, oraz 1-bitowe przeniesienie C0, a zwracający n-bitową sumę S i przeniesienie Cn.

• Wejścia i wyjścia to liczby całkowite w naturalnym kodzie binarnym lub U2.

• Sumatory n-bitowe również mogą być łączone ze sobą (szeregowo bądź równolegle).

3. Algorytmy mnożenia liczb binarnych.

a) algorytm mnożenia liczb w zapisie Z-M., schemat blokowy, zasada działania

Mnożenie BEZ znaku. Mnożenie liczb ze znakiem

Wynik mnożenia dwóch liczb a i b w systemie ZM wygląda następująco: znak: 0 jeśli znaki mnożników są takie same; 1 jeśli są różne. liczba: mnożymy pisemnie, z zachowaniem normalnych zasad mnożenia:

6

docsity.com

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 11) nic nie robimy. Następnie przesuwamy arytmetycznie (z zachowaniem znaku, czyli najstarszy bit zostaje przesunięty i zarazem zostaje na swoim miejscu np. 1101 >> 1110) 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 >>

7

docsity.com

4. Reprezentacja zmiennoprzecinkowa liczb rzeczywistych.

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=smBc , gdzie:

s∈{−1 , 1} – znak

m∈〈1,2  – mantysa

c – cecha należąca do liczb całkowitych.

B – podstawa (w przypadku komputerów jest to 2 ).

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 zb , gdzie

zb - cecha.

e∈{−1,1}

• 1 f - mantysa

W pamięci komputera przechowywane jest jedynie f oraz z . Jedynka i bias (oznaczony przez b ) są niejako 'dokładane' przez komputer w trakcie obliczeń itp.

Oczywiście generuje to niedokładności. Liczby możemy zapisać więc w pewnym ograniczonym zakresie i z ograniczoną dokładnością.

Za zakres odpowiada cecha (zapisana w kodzie z nadmiarem). Za precyzję mantysa.

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:

8

docsity.com

• 0 – bity cechy i mantysy są równe zero.

• liczba zdenromalizowana – liczba przy której komputer nie doda automatycznie jedynki do f. Bity cechy są zerami. Mantysa niezerowa.

• INF (nieskończoność) – bity cechy to same jedynki. Bity mantysy same zera.

• NaN (nieliczba) – bity cechy to same jedynki. Bity mantysy zawierają jakiś bit ustawiony na 1.

Standard IEE754 dla formatu zapisu zmiennoprzecinkowego:

32 bity:

1 bit 8 bitów 23 bity

znak cecha mantysa

// bias = 127

64 bity:

1 bit 11 bitów 52 bity

znak cecha mantysa

// bias = 1023

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

zn ak cecha - 8 b mantysa - 23 b

0 1 2 3 4 5 6 7 8 9 1 0

1 1

1 2

1 3

1 4

1 5

1 6

1 7

1 8

1 9

2 0

2 1

2 2

2 3

2 4

2 5

2 6

2 7

2 8

2 9

3 0

3 1

3 2

3 3

3 4

3 5

3 6

3 7

3 8

3 9

4 0

4 1

4 2

4 3

4 4

4 5

4 6

4 7

4 8

4 9

5 0

5 1

5 2

5 3

5 4

5 5

5 6

5 7

5 8

5 9

6 0

6 1

6 2

6 3

zn ak cecha - 11 b mantysa - 52 b

// Gdyby nadal coś było niejasnego (mam nadzieję, że nie) to zapraszam na:

// http://edu.i-lo.tarnow.pl/inf/alg/006_bin/0022.php

b) zakres reprezentacji

[−xmax ,x min]∪{0}[x min , x max ]

Zgodnie ze standardem IEE754 dla formatu zapisu zmiennoprzecinkowego:

• pojedynczej precyzji [−3.4⋅1038 ,3.4⋅1038 ]

• podwójnej precyzji [−1.8⋅10308 , 1.8⋅10308]

Niedomiar:

x∣BEmin traktowana jest jako niedomiar (underflow).

Nadmiar:

x∣MmaxB Emax traktowana jest jako nadmiar wykładniczy (overflow).

c) dokładność reprezentacji

Zarówno dla mantysy jak i wykładnika ilość cyfr jest z góry ustalona. Zatem dana liczba jest reprezentowana z pewną skończoną dokładnością i należy do skończonego zbioru wartości.

Załóżmy, że m to liczba cyfr przeznaczonych na mantysę, natomiast n1 to liczba cyfr

9

docsity.com

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: • Emin=− B1 • Emax=B− 1

Mantysa M: • Mmin=1 • Mmax=B − B // aby napewno? nie przypadkiem : Mmax=B − B

−m−1 ?

Stąd najmniejsza i największa liczba dodatnia możliwa do zapisania w takiej reprezentacji to:

xmin=MminB Emin=1⋅BEmin

xmax=MmaxB E max=BB−m−1⋅BEmaxBE max1

Błąd:

Błąd względny reprezentacji wynosi 1

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=SMBE , gdzie:

S - znak liczby 1 lub -1 , • M - znormalizowana mantysa, liczba ułamkowa, • B - podstawa systemu liczbowego (2 dla systemów komputerowych), • E - wykładnik, liczba całkowita.

W celu uproszczenia operacji na liczbach zmiennopozycyjnych wymagane jest zwykle, aby były one znormalizowane. Liczbą znormalizowaną jest taka liczba, w której najbardziej znacząca cyfra mantysy jest różna od zera (ta po lewej stronie), zatem M∈〈1 , 2 . Znormalizowana liczba niezerowa ma postać:

±1, bbbb×2±E , gdzie:

b – dowolna cyfra binarna (0 lub 1),

10

docsity.com

E – wykładnik. Dzięki temu możemy np. przechowywać 24-bitową mantysę na polu 23-bitowym. .

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:

xy zx yz  xy ⋅zx⋅yz

• Kolejność wykonywania działań wpływa na końcowy wynik

 Inne problemz przy wykonywaniu obliczeń zmiennoprzecinkowych:

• Zaokrąglenia

• Nieprawidłowe operacje

• Przepełnienie

• Niedomiar

 Sposób wykonywania operacji

dodawanie i odejmowanie mnożenie i dzielenie

mamy dwie liczby: x1=M 1⋅B

E1

x2=M 2⋅B E 2

oraz x1 x2 wówczas:

xx2=M M 2⋅B E 2−E 1⋅BE 1

mamy dwie liczby: x1=S 1⋅M 1⋅B

E1

x2=S 2⋅M 2⋅B E 2

wówczas: x1⋅x2=S1⋅S2⋅M 1⋅M 2⋅B

E 1E 2

x1/ x2=S1⋅S2⋅M 1/M 2⋅B E1E 2

5. Reprezentacja stałoprzecinkowa liczb rzeczywistych – zakres reprezentacji oraz własności reprezentacji stałoprzecinkowej.

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):

2k−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.

11

docsity.com

Przykład: Jeśli na część całkowitą zostaną przeznaczone 4 bity k=4 , natomiast na część ułamkową 2 bity n=2 , wówczas:

• wartość maksymalna:

1111,112 = 2 3 + 22 + 21 + 20 + 2-1 + 2-2 = 15,7510

• wartość minimalna:

0000,012 = 2 -2 = 0,2510

• przykładowa liczba:

1011,102 = 2 3 + 21 + 20 + 2-1 = 11,510

Działania całkowitoliczbowe:

Jeśli obliczyć wartość liczby stałoprzecinkowej x w naturalnym kodzie dwójkowym, wartość ta wyniesie x2n . Wówczas działania całkowitoliczbowe mają postać:

• Dodawanie/odejmowanie: a 2n±b 2n=a±b 2n - wynik nie wymaga korekty, jest to zapis stałoprzecinkowy z założoną dokładnością.

• Mnożenie: a2nb2n=ab⋅22n - wynik wymaga korekty, należy podzielić go przez 2n , aby uzyskać postać x2n .

• Dzielenie całkowitoliczbowe. W tym przypadku dzielną a należy przemnożyć przez

czynnik 2n przed wykonaniem dzielenia i wówczas: a2n⋅2n

b 2n =

a b ⋅2n .

Mnożenie i dzielenie przez potęgę dwójki, w tym przypadku 2n , jest równoważne przesunięciu bitowemu (odpowiednio) w lewo bądź prawo o n bitów; jest to operacja bardzo szybka.

6. Logarytmiczna reprezentacja liczb rzeczywistych, własności oraz:

a) operacje arytmetyczne w systemach logarytmicznych

Logarytmiczna reprezentacja może być traktowana jako specyficzny przypadek reprezentacji zmiennoprzecinkowej liczb rzeczywistych, kiedy to mantysa jest zawsze równa 1 a wykładnik posiada część ułamkową (podstawa oczywiście wynosi 2 ):

A=−1SA⋅2E A , gdzie

SA - bit znaku,

E A jest stałą wartością liczbową.

Jeśli E A0 , to reprezentowana liczba jest mniejsza od 1. Dzięki temu reprezentacja logarytmiczna pozwala na zapisanie zarówno bardzo dużych jak i małych liczb.

Format liczby w reprezentacji logarytmicznej:

2 bity 1 bit część całkowita - K bitów wykładnika część ułamkowa - L bitów wykładnika

flagi znak - SA wykładnik liczby

12

docsity.com

komentarze (0)
Brak komentarzy
Bądź autorem pierwszego komentarza!
To jest jedynie podgląd.
3 shown on 12 pages
Pobierz dokument