Click here to load reader
View
215
Download
0
Embed Size (px)
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