Click here to load reader

Technologie Informacyjne Wykład 4 - Katedra Mechaniki i ... · PDF fileTechnologie Informacyjne Wykład 4 Arytmetyka komputerów ... Trzeba to tak zrobić, żeby podstawowe operacje

  • View
    215

  • Download
    0

Embed Size (px)

Text of Technologie Informacyjne Wykład 4 - Katedra Mechaniki i ... · PDF fileTechnologie...

Technologie InformacyjneWykad 4

Arytmetyka komputerw

Wojciech Myszka Jakub Sowiski

Katedra Mechaniki i Inynierii MateriaowejWydzia Mechaniczny

Politechnika Wrocawska

30 padziernika 2014

Cz I

Liczby binarne i arytmetyka komputerw

(IMMT PWr) TI-W01 30 padziernika 2014 2 / 1

Podstawowe fakty

Arytmetyka komputerw

Zapis liczb dwjkowy.Kada z liczb zapisywana jest za pomoc cyfr 0 i 1.Ukad jest pozycyjny waga cyfry zaley od miejsca, w ktrymzostaa ustawiona.Najmniej znaczce miejsca s po stronie prawej. . .1010 to 1 23 + 0 22 + 1 21 + 0 20 czyli 8 + 0 + 2 + 0 = 10NB liczby parzyste maj zero na kocu, nieparzyste 1.

Arytmetyka dwjkowa bardzo prosta.0 + 0 = 01 + 0 = 0 + 1 = 11 + 1 = 101 1 = 11 0 = 0 1 = 00 0 = 0

(IMMT PWr) TI-W01 30 padziernika 2014 3 / 1

Operacje logiczne

Operacje logiczne

(Podstawowe) operacje logiczne to suma logiczna (OR), iloczyn logiczny(AND), negacja (NOT), rnica symetryczna (XOR)

OR 0 10 0 11 1 1

AND 0 10 0 01 0 1

XOR 0 10 0 11 1 0

(IMMT PWr) TI-W01 30 padziernika 2014 4 / 1

Arytmetyka komputera (c.d.)

Arytmetyka komputeraArytmetyka klasyczna

Jestemy przyzwyczajeni do nastpujcych rzeczy:

1

Jeeli x 6= 0 to a a + x 6= a

2

a + b + + z = z + y + + b + a

3

a, b < a < b c : a < c < b

W arytmetyce komputerowej powysze zasady nie obowizuj!

(IMMT PWr) TI-W01 30 padziernika 2014 5 / 1

Arytmetyka komputera (c.d.)

Arytmetyka komputeraArytmetyka klasyczna

Jestemy przyzwyczajeni do nastpujcych rzeczy:

1

Jeeli x 6= 0 to a a + x 6= a

2

a + b + + z = z + y + + b + a

3

a, b < a < b c : a < c < b

W arytmetyce komputerowej powysze zasady nie obowizuj!

(IMMT PWr) TI-W01 30 padziernika 2014 5 / 1

Arytmetyka komputera (c.d.)

Arytmetyka komputeraArytmetyka klasyczna

Jestemy przyzwyczajeni do nastpujcych rzeczy:

1

Jeeli x 6= 0 to a a + x 6= a

2

a + b + + z = z + y + + b + a

3

a, b < a < b c : a < c < b

W arytmetyce komputerowej powysze zasady nie obowizuj!

(IMMT PWr) TI-W01 30 padziernika 2014 5 / 1

Arytmetyka komputera (c.d.)

Arytmetyka komputeraArytmetyka klasyczna

Jestemy przyzwyczajeni do nastpujcych rzeczy:

1

Jeeli x 6= 0 to a a + x 6= a

2

a + b + + z = z + y + + b + a

3

a, b < a < b c : a < c < b

W arytmetyce komputerowej powysze zasady nie obowizuj!

(IMMT PWr) TI-W01 30 padziernika 2014 5 / 1

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe

1 Arytmetyka1 Liczby naturalne2 Liczby cakowite3 Liczby wymierne4 Liczby rzeczywiste

2 Komptery1 Liczby cakowite (integer)2 Liczby staoprzecinkowe3 Liczby zmiennoprzecinkowe

(IMMT PWr) TI-W01 30 padziernika 2014 6 / 1

Liczby zmiennoprzecinkowe

Liczby cakowite I

Sytuacja dosy klarowna.Na n bitach moemy zapisa liczby cakowite dodatnie z zakresu odzera do 2n 1Jest pewien problem z liczbami ujemnymi: trzeba zarezerwowamiejsce na znakTrzeba to tak zrobi, eby podstawowe operacje (dodawanie,odejmowanie i mnoenie,. . . ) byy wykonywane tak samo gdyargumenty s dodatnie jak i wtedy gdy s ujemne.Ukad uzupenieniowy to zaatwi.Czasami korzysta si z kodu BCD (Binary Coded Decimal (cyfry)dziesitne kodowane binarnie: liczba zapisywana jest w ukadziedziesitnym (za pomoc cyfr dziesitnych), ale poszczeglne cyfrykodowane s binarnie321(10) zapisywane jest jako 0011 0010 00012

(IMMT PWr) TI-W01 30 padziernika 2014 7 / 1

Liczby zmiennoprzecinkowe

Liczby ujemne

1 Trzeba zarezerwowa jeden bit na zapamitanie znaku!2 Wariant najprostszy 3 00000113 Wariant najprostszy 3 1000011

Jest to zapis znakmodu4 Ale jak dodawa takie liczby?

(IMMT PWr) TI-W01 30 padziernika 2014 8 / 1

Liczby zmiennoprzecinkowe

Liczby ujemne

Tablica odejmowania: 0 10 0 11 1 0

(Zakadamy, e operujemy na liczbach czterobitowych!)

0011 1 = 0010

0010 1 = 0001

0001 1 = 0000

0000 1 = 1111

Zatem 1 to 1111 (czterobitowo!)

(IMMT PWr) TI-W01 30 padziernika 2014 9 / 1

Liczby zmiennoprzecinkowe

Liczby ujemne

Dokonajmy prostego sprawdzenia:

5 + (1)

0 1 0 1

1 1 1 1

1 0 1 0 0

(IMMT PWr) TI-W01 30 padziernika 2014 10 / 1

Liczby zmiennoprzecinkowe

Liczby ujemne

Dokonajmy prostego sprawdzenia:

5 + (1)

0 1 0 1

1 1 1 1

1 0 1 0 0

(IMMT PWr) TI-W01 30 padziernika 2014 10 / 1

Liczby zmiennoprzecinkowe

Dygresja

Liczby dziesitne, dwucyfrowe:

3 3

9 9

1 3 2

(IMMT PWr) TI-W01 30 padziernika 2014 11 / 1

Liczby zmiennoprzecinkowe

Dygresja

Liczby dziesitne, dwucyfrowe:

3 3

9 9

1 3 2

(IMMT PWr) TI-W01 30 padziernika 2014 11 / 1

Liczby zmiennoprzecinkowe

Negacja liczby

Mnemotechniczny algorytm negacji jest bardzo prosty: negujemywszytskie bity i powsta liczb zwikszamy o 1:1 to 0001negacje: 1110zwikszenie o 1: 11112 to 0010negacja: 1101zwikszenie o 1: 1110sprawdzenie 5 + (2)

0 1 0 11 1 1 0

1 0 0 1 1

(IMMT PWr) TI-W01 30 padziernika 2014 12 / 1

Liczby zmiennoprzecinkowe

Liczby staoprzecinkowe

1 Liczby w ktrych na zapamitanie czci cakowitej przeznacza sikilka(nacie/dziesit) bitw

2 Na zapamitanie czci uamkowej rwnie uywa si kilku(nastu?)bitw:1 0 1 0 , 1 0 1 0

co odczytujemy jako:1 23 + 0 22 + 1 21 + 0 20 + 1 21 + 0 22 + 1 23 + 0 24lub 8 + 2 + 1

2+ 1

8czyli 10,625

3 Uywany bardzo rzadko (finanse??)4 Z matematycznego punktu widzenia s to liczby wymierne5 Jak w tej postaci zapisa liczb 1,1

(IMMT PWr) TI-W01 30 padziernika 2014 13 / 1

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe I

1 S to liczby zapisywane (kodowane) w sposb podobny do zananegonam: c = 299792458 3 108 m/s

2 Czyli w postaci mantysa (2,99792458) plus wykadnik 8, zatem2,99792458*108 albo inaczej 2,99792458 e8

3 W przypadku komputerw podstawa kodowania (tak mantysy jak iwykadnika) to 2!

4 Dodatkowo liczby zapisywane s zawsze w postaciznormalizowanej czyli takiej, e cyfra przed przecinkiem (kropk)dziesitnym jest zawsze z zakresu midzy 1 a 9. (a w ukadziedwjkowym zawsze jest rwna 1!)

5 Na zapamitanie mantysy i wykadnika przeznaczana jest zawszeskoczona liczba bitw.

6 Z matematycznego punktu widzenia s to liczby wymierne.

(IMMT PWr) TI-W01 30 padziernika 2014 14 / 1

Liczby zmiennoprzecinkowe

Liczby zmiennoprzecinkowe II

7 Sposb zapisu liczb zmiennoprzecinkowych reguluje standardIEEE-754.

(IMMT PWr) TI-W01 30 padziernika 2014 15 / 1

Liczby zmiennoprzecinkowe

Par problemw

1 Zawsze(?) ograniczona liczba bitw przeznaczona na zapamitanieliczby (ale znane s specjalne programy, ktre staraj si teograniczenie przezwycia).

2 Wynik dziaa arytmetycznych czsto prowadzi do powstanianadmiaru (czyli przekroczenia maksymalnej dopuszczalnej wartociliczb).

3 Wikszo liczb ktre (z przyzwyczajenia) traktujemy jako dokadne,nie ma dokadnej reprezentacji dwjkowej (0,5 jest OK ale 0,1 junie).

(IMMT PWr) TI-W01 30 padziernika 2014 16 / 1

Operacje na liczbach zmiennoprzecinkowych

Operacje na liczbach zmiennoprzecinkowych I

1 Mnoenie.Jest proste: mnoymy mantysy i dodajemy wykadniki.1, 33 e+3 1, 55 e+7 = 2, 0615 e+10Nastpnie trzeba wynik obci do odpowiedniej liczby miejscznaczcych (w naszym przypadku niech to bd trzy cyfry) 2, 06 e+10W przyku liczb binarnych bdzie podobnie.Uwaga: czasami moe zdarzy si problem: w wyniku mnoenialiczba moe ulec denormalizacji wwczas trzeba jznormalizowa, zaokrgli i skorygowa wykadnik:5, 55 e+0 6, 33e+0 = 35, 13 e+0 = 3, 51 e+1

(IMMT PWr) TI-W01 30 padziernika 2014 17 / 1

Operacje na liczbach zmiennoprzecinkowych

Operacje na liczbach zmiennoprzecinkowych II

2 Dzielenie.Postpujemy analogicznie jak w przypadku mnoenie (dzielimymantysy, odejmujemy wykadniki). W przypadku denormalizacjipostpujem jak wyej1, 33 e+0/9, 88 e+0 = 0, 134615385 e+0 = 1, 35 e1

3 Dodawanie.Sprawa nieco bardziej skomplikowana. Aby dodawa liczbyzmiennoprzecinkowe trzeba je najpierw zdenormalizowa idoprowadzi do rwnoci wykadnikw:1, 22 e+0 + 3, 35 e 4 = 1, 22 e+0 + 0, 000335 e+0 =1, 220335 e+0 = 1, 22 e+0a nastpnie zaokrgli i znormalizowa. . .

4 Odejmowanie.Identycznie jak dodawanie.

(IMMT PWr) TI-W01 30 padziernika 2014 18 / 1

Konwersje

KonwersjeDziesitny do dwjkowego

Liczby cakowite:Liczb dzielimy przez dwa zapisujc reszty z dzielenia:10

5 02 11 00 1

Reszty z dzielenia zapisujemy od koca otrzymujc 1010

(IMMT PWr) TI-W01 30 padziernika 2014 19 / 1

Konwersje

KonwersjeDziesitny do dwjkowego

Liczby cakowite:Liczb dzielimy przez dwa zapisujc reszty z dzielenia:105 0

2 11 00 1

Reszty z dzielenia zapisujemy od koca otrzymujc 1010

(IMMT PWr) TI-W01 30 padziernika 2014 19 / 1

Konwersje

KonwersjeDziesitny do dwjkowego

Liczby cakowite:Liczb dzielimy przez dwa zapisujc reszty z dzielenia:105 02 1

1 00 1

Reszty z dzielenia zapisujemy od koca otrzymujc 1010

(IMMT PWr) TI-W01 30 padziernika 2014 19 / 1

Konwersje

KonwersjeDziesitny do dwjkowego

Liczby cakowite:Liczb dzielimy przez dwa zapisujc reszty z dzielenia:105 02 11 0

Search related