De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

1 Hoofdstuk 6 Gegevensvoorstelling en Berekeningen.

Verwante presentaties


Presentatie over: "1 Hoofdstuk 6 Gegevensvoorstelling en Berekeningen."— Transcript van de presentatie:

1 1 Hoofdstuk 6 Gegevensvoorstelling en Berekeningen

2 2 Inhoud Talstelsels Getallen in een Computer Natuurlijke getallen Gehele getallen Gebroken getallen Bewegende komma getallen Andere gegevens (letters, …)

3 3 Talstelsels Getal = abstract (hoeveelheid) – Eigenschappen (priem, deelbaar, …) Voorstelling = “naam” – Systematiek: Talstelsel – Berekeningen in het talstelsel – Voorbeeld: r-tallig talstel

4 4 r-tallig talstelsel r = grondtal (= vast) Elk cijfer: gewicht in functie van de positie Zij c i  { 0, 1, …, r-1 } c n-1 r n-1 + c n-2 r n-2 + … + c 1 r 1 + c 0 r 0 Voorstelling = c n-1 c n-2 … c 1 c 0 gewicht

5 5 Voorbeelden Decimaal r = 10, c  {0, 1, …, 9} 1235 Binair r = 2, c  {0, 1} 10011010011 Octaalr = 8, c  {0, 1, …, 7} 2323 Hexadecimaal r = 16, c  {0,..., 9, A, …, F} 4D3 MO:  voorstellingen, zelfde getal!

6 6 Getallen in een Computer Eindig aantal cijfers – Ligt vast – Soms # verschillende formaten (bijv. 16-bit en 32-bit getallen) Gevolgen: – Niet alle getallen kunnen voorgesteld worden – Eigenschappen uit getallenleer gelden soms niet Gesloten t.o.v. +, , × Associativiteit, distributiviteit gelden soms niet

7 7 Getallen in de Computer Bijv. stel 3 decimale cijfers (alleen pos.) – Alleen getallen uit {0, 1, …, 999 } – Niet gesloten t.o.v. som / vermenigvuldiging 590 + 530  1120 (= 4 cijfers! OVERLOOP) – Associativiteit? 400 + (800  300)  (400 + 800)  300 – Distributiviteit? 005 × (300  200)  (005 × 300)  (005 × 200)

8 8 Natuurlijke getallen

9 9 Omzetting Binair  Decimaal Omzetting Binair  Octaal/Hexadecimaal BCD voorstelling Binair rekenen – optelling – aftrekking (zie ook gehele getallen) – vermenigvuldiging –deling

10 10 Omzetting Decimaal  Binair X  c n-1 … c 1 c 0 met c i  {0, 1} X 0 = X = c n-1 2 n-1 + … + c 1 2 1 + c 0 2 0 X 0 = even: c 0 = 0 X 0 = oneven: c 0 = 1 X 1 = X 0 div 2 = c n-1 2 n-2 + c n-2 2 n-3 + … + c 1 2 0 X 1 = even: c 1 = 0 X 1 = oneven: c 1 = 1 enz.

11 11 Omzetting Decimaal  Binair X  c n-1 c n-2 … c 1 c 0 met c i  {0, 1} X 0 = X, X i = X i-1 div 2 X i = even: c i = 0 X i = oneven: c i = 1

12 12 Omzetting Decimaal  Binair 7460 3731 1860 931 460 231 111 51 20 11 1 0 1 1 1 0 1 0 1 0

13 13 Omzetting Binair  Decimaal X  c n-1 … c 1 c 0 met c i  {0, 1} X = c n-1 2 n-1 + c n-2 2 n-2 … + c 1 2 1 + c 0 2 0 = (c n-1 2 + c n-2 ) 2 n-2 + … + c 1 2 1 + c 0 2 0 = ((... (( 0 + c n-1 ) 2 + c n-2 ) 2 + … + c 1 ) 2 + c 0 X 0 = 0 X i = X i-1 × 2 + c n-i (i=1.. n) X = X n

14 14 Omzetting Decimaal  Binair 1 0 1 1 1 0 1 0 1 0 0 2 4 10 22 46 92 186 372 746 1 2 5 11 23 46 93 186 373 746 × 2 ++++++++++

15 15 Octaal / Hexadecimaal Compacter dan Binair Nauw verwant met Binair Gebruik: – Programmeertalen – Tonen van inhoud van Geheugen/Register

16 16 Omzetting van/naar Octaal/Hexadecimaal Analoog binair Eenvoudiger: omweg via binair – Decimaal  Binair  Octaal/Hexadecimaal – Octaal/Hexadecimaal  Binair  Decimaal Verklaring: h m 16 m + … + h 1 16 1 + h 0 16 0 h i = c i3 2 3 + c i2 2 2 + c i1 2 1 + c i0 2 0 en 16 = 2 4 Groeperen van RECHTS naar LINKS!

17 17 Omzetting van/naar Octaal/Hexadecimaal 1 0 1 1 1 0 1 0 1 0 1 3 5 2 (oct.) 1 0 1 1 1 0 1 0 1 0 2 E A (hex.)

18 18 Binary Coded Decimal (BCD) = decimale voorstelling, cijfers binair 4 bits per cijfer vb. 1586  0001 0101 1000 0110 Complexe rekenregels...

19 19 Aantal Cijfers n decimale cijfers b bits 10 n-1  x < 10 n en 2 b-1  x < 2 b dus 10 n  2 b bijgevolg b  log 2 10 n = n log 2 10 = 3,3 n n dec. cijfers  3,3 n bits  1,11 n oct.  0,83 n hex. bijv. 300 dec. cijfers  1000 bits

20 20 Optellen van binaire getallen 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10 1 0 0 1 1 0 1 0 1 1 + 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 Merk Op: som van twee n-bit getallen: max. n+1 bits 1 1 1 1 1 1  overdrachten

21 21 Optellen van binaire getallen 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 + 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 OPTHOPT

22 22 Halve Opteller (HOPT) X Y S T 0 0 0 1 1 0 1 0 1 1 0 1 HOPT X Y S (som) T (overdracht) EN EOF XYXY STST

23 23 Opteller (OPT) X i Y i O i S i T 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 OPT X i Y i T i S i (som) T i+1 (overdracht) HOPT XiYiTiXiYiTi OF T i+1 S i O T S S

24 24 Optelschakeling (parallel) OPTHOPTOPT X n -1 X n -2 X 2 X 1 X 0 Y n -1 Y n -2 Y 2 Y 1 Y 0 S n-1 S n -2 S 2 S 1 S 0 Overloop!

25 25 Optelschakeling (serieel) OPT 1 overdracht X-register Y-register S-register S T Initieel 0 (Stap=0) Stap = n OVERLOOP? OVI, PO 7 XiXi YiYi TiTi schuifregisters

26 26 Verschil van binaire getallen 0 – 0 = 0 1 – 0 = 1 10 – 1 = 1 0 – 1 = — 1 – 1 = 0 1 0 0 1 1 0 0 0 1 1 – 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 Merk Op: grootste - kleinste (anders negatief) 0 1 1 10  lenen 0 10 0 1 1 10

27 27 Verschilschakeling (parallel) AFTHAFTAFT X n -1 X n -2 X 2 X 1 X 0 Y n -1 Y n -2 Y 2 Y 1 Y 0 V n-1 V n -2 V 2 V 1 V 0 Fout!

28 28 Vermenigvuldigen 0 × 0 = 0 0 × 1 = 0 1 × 0 = 0 1 × 1 = 1. 11011 (X) 27 × 01101 (Y)  13 11011 81 00000 27 11011 351 11011 00000 101011111 (X  Y) X of 0!

29 29 Efficiënte Implementatie Partieel Sommen: X of 0 Partieel Sommen direct bijtellen X  Y = X ×  Y i 2 i = X × 2 n ×  Y i 2 i 2 -n =  (X Y i 2 n ) 2 i-n = (X Y 0 2 n ) 2 -n + (X Y 1 2 n ) 2 1-n + … + (X Y n-1 2 n ) 2 -1

30 30 Efficiënte Implementatie (2) X  Y = (X Y 0 2 n ) 2 -n + (X Y 1 2 n ) 2 1-n + … + (X Y n-1 2 n ) 2 -1 = ((X Y 0 2 n ) 2 -1 + (X Y 1 2 n )) 2 1-n + … + (X Y n-1 2 n ) 2 -1 = (… (((0 + X Y 0 2 n ) 2 -1 + X Y 1 2 n ) 2 -1 ) + … + X Y n-1 2 n ) 2 -1 P (0) = 0 P (i) = (P (i-1) + X Y i-1 2 n ) 2 -1 i = 1.. n P (n) = X  Y

31 31 Algoritme A n-1 A0A0...Q n-1 Q0Q0...X n-1 X0X0... T N bit opteller Q 0 = 1 = verschuif naar rechts T  0, A  00…0, Q  Y N keer: (a) Q 0 = 1: C, A  A + X (b) verschuif T, A, Q

32 32 Voorbeeld X = 11011 Y = 01101 i T A Q 0 0 00000 01101 1 0 11011 01101 (+) 0 01101 10110 (») 2 0 00110 11011 (») i T A Q 3 1 00001 11011 (+) 0 10000 11101 (») 4 1 01011 11101 (+) 0 10101 11110 (») 5 0 01010 11111 (») X  Y Merk Op: indien resultaat n bits: overloop als A  00…0

33 33 Deling Deling = inverse vermenigvuldiging Vermenigvuldiging = # { optelling, versch. } Deling = # { aftrekking, verschuiving }

34 34 Gehele Getallen

35 35 Gehele Binaire Getallen n bit-getallen 0000…000 t.e.m. 1111…111 n bits n bits Natuurlijke getallen: [0, 2 n  1] Gehele getallen:  ½ stellen positieve getallen voor  ½ stellen negatieve getallen voor

36 36 Gehele Binaire Getallen Verschillende wijzen van opdelen: – Voorteken – 1-complement – 2-complement – Plus 2 n-1 notatie

37 37 Voorteken Eerste Bit = Tekenbit X n-2 X0X0...X n-1 Tekenbit 0: positief 1: negatief  X i 2 i. i = 0 n-2

38 38 Voorteken Bijv. n = 8 00001101 (= +13) 10001101 (=  13) 01111111 (= +127) 11111111 (=  127) 00000000 (= +0) 10000000 (=  0)

39 39 Voorteken Getallenbereik: [  2 n-1  1)...  1,  0, +0, +1, … +(2 n-1  1)] Symmetrisch bereik  0 =?= +0 Rekenregels Complex (+,  ) X = X n-1 X n-2 … X 1 X met X n-1 = tekenbit Gevraagd: Z := X + Y

40 40 Voorteken: Optelling { Z = X + Y } if ( X n-1 == Y n-1 ) /* X n-1, Y n-1 = tekenbit */ { Z n-1 = X n-1 ; Z n-2..0 = X n-2..0 + Y n-2..0 } else { if (X n-2..0 > Y n-2..0 ) { Z n-1 = X n-1 ; Z n-2..0 = X n-2..0  Y n-2..0 } else { Z n-1 = Y n-1 ; Z n-2..0 = Y n-2..0  X n-2..0 } }

41 41 Voorteken: Vermenigvuldiging { Z = X × Y } Z n-1 = X n-1 EOF Y n-1 ; Z n-2..0 = X n-2..0 * Y n-2..0 ; /* test op overloop! */

42 42 2-Complement2-Complement Eerste bit = tekenbit 000…000 000…001 000…010 000…011 … 011…110 011…111 100…000 100…001 100…010 100…011 … 111…110 111…111  0  1  2  3  2 n-1  2  2 n-1  1   2 n-1   2 n-1  1   2 n-1  2   2 n-1  3   2   1

43 43 2-Complement Positief: 1 e bit = 0, overige zie natuurlijke getallen Negatief: 2 n  | X |  1  2 n  1 = 111…111  2  2 n  2 = 111…110  2 n-1  2 n  2 n-1 = 2 n-1 = 100…000

44 44 2-Complement Bijv. n = 8 00000000 (= +0) 00000001 (= +1) … 00001101 (= +13) … 01111111 (= +127) 1 0000000 (=  128) 10000001 (=  127) … 10001101 (=  115) … 11111111 (=  1)

45 45 2-Complement Getallenbereik [  2 n-1,  (2 n-1  1)...  1, +0, +1, … +(2 n-1  1)] Asymmetrisch bereik! 0 heeft slechts 1 voorstelling Rekenregels eenvoudig! Omrekenformule: X = X n-1 (  2 n-1 ) + X n-2 2 n-2 + … + X 0

46 46 2-Complement Omrekenformule: X < 0: 2 n  | X | =  X i 2 i (X n-1 = 1)  | X | =  2 n +  X i 2 i =  2 n-1  2 n-1 + 1 × 2 n-1 +  X i 2 i X = X n-1 (  2 n-1 ) + X n-2 2 n-2 + … + X 0 (ook geldig voor positieve getallen: x n-1 = 0) i = 0 n-2 n-1 i = 0 n-1

47 47 2-Complement & Restklassen congruent modulo m a = b mod m of a  b (mod m)  (a  b) deelbaar door m equivalentierelatie equivalentieklassen (restklassen) 0 = { …,  2m,  m, 0, m, 2m, … } 1 = { …,  2m+1,  m+1, 1, m+1, 2m+1, … } 2 = { …,  2m+2,  m+2, 2, m+2, 2m+2, … }...

48 48 2-Complement & Restklassen Q = {0, 1, …, m-1 } = Quotiëntverzameling Congruentierelatie is verenigbaar met +, × x  r, y  s, x+y  t   a  r,  b  s, a+b  t x  r, y  s, x  y  t   a  r,  b  s, a  b  t Q, +, × is commutatieve ring

49 49 2-Complement & Restklassen Voorbeeld: a  b (mod 5) 0 = { …,  10,  5, 0, 5, 10, … } 1 = { …,  9,  4, 1, 6, 11, … } 2 = { …,  8,  3, 2, 7, 12, … } 3 = { …,  7,  2, 3, 8, 13, … } 4 = { …,  6,  1, 4, 9, 14, … } + 01234× 01234 0 01234000000 112340101234 2 23401202413 3 34012303142 4 40123404321

50 50 2-Complement & Restklassen Restklassen modulo 2 n 0 = { …,  2 n+1,  2 n, 0, 2 n, 2 n+1 … } 1 = { …,  2 n +1, 1, 2 n +1, … } 2 = { …,  2 n +2, 2, 2 n +2, … } … 2 n-1  1 = { …,  2 n-1  1, 2 n-1  1, 2 n +2 n-1  1, … } 2 n-1 = { …,  2 n-1, 2 n-1, 2 n +2 n-1, … } … 2 n  2 = { …,   2, 2 n  2, 2 n+1  2, … } 2 n  1 = { …,  1, 2 n  1, 2 n+1  1, … } Plus-conventie 2-Complement

51 51 2-Complement Besluit: –Apparatuur werkt met restklassen – Resultaat steeds modulo 2 n – d.i. alleen laatste n bits behouden

52 52 Bewerkingen met 2-complement Inverteren Som Verschil X  Y = X + (  Y) Product Aanpassing van woordlengte

53 53 Inverteren X   X X negatief: 2 n  | X | 2 n = (2 n  1 + 1) 2 n  | X |= 2 n  1  | X | + 1 = 111…11  |X| + 1 = (1  X n-1 ) (1  X n-2 ) … (1  X 0 ) + 1 Bijgevolg: bits omkeren en 1 bijtellen

54 54 Inverteren Voorbeeld: (n = 8) 01100110 (132) 10011001 (omkeren) + 1 10011010 (  132) Merk op: ook geldig  X  +X 10011010 (  132) 01100101 (omkeren) + 1 01100110 (+132)

55 55 Inverteren Schakeling: n × NIET, n × HOPT HOPT 1 X = x n-1 x 2 x 1 x 0  X =Y= y n-1 y 2 y 1 y 0...

56 56 Som OPTHOPTOPT X n X n -1 X 2 X 1 X 0 Y n Y n -1 Y 2 Y 1 Y 0 S n S n -1 S 2 S 1 S 0 OPT

57 57 Som Voorbeelden (n = 8) 00010110 (22) + 11100111 (-25) 11111101 (-3) 00011001 (25) + 11101010 (-22) 100000011 (3) 11100111 (-25) + 11110101 (-11) 111011100 (-36)

58 58 Som Overloop: x, y > 0  x+y 0 Voorbeelden: (n=8) 01010110 (86) 10010111 (-105) + 01000001 (65) + 10010100 (-108) 10010111 (-105) 100101011 (43)

59 59 Som Overloopdetectie = eenvoudig –laatste 2 overdrachten gelijk: OK –anders: OVERLOOP Voorbeelden: (n=8) 01000000 10010100 (overdr.) 01010110 (86) 10010111 (-105) + 01000001 (65) + 10010100 (-108) 10010111 (-105) 100101011 (43)

60 60 Som Voorbeelden (n = 8) 00000110 00010110 (22) + 11100111 (-25) 11111101 (-3) 11111000 00011001 (25) + 11101010 (-22) 100000011 (3) 11100111 11100111 (-25) + 11110101 (-11) 111011100 (-36) overdrachten

61 61 Optelling OPTHOPTOPT X n X n -1 X 2 X 1 X 0 Y n Y n -1 Y 2 Y 1 Y 0 S n S n -1 S 2 S 1 S 0 OPT Overloop (indien 1) EOF

62 62 Product 11110011 (-13) × 00000111 (7) 11110011 11010100101  10100101 (-91) Overloop Mogelijk! Algoritme  van vermenigv. natuurlijke getallen

63 63 Aanpassing woordlengte Aanpassen lengte v/d voorstelling –Kopiëren van tekenbit Voorbeeld: 8-bit vs. 16-bit 00011010 (  26) 0000000000001010 (  26) 11100110 (  26) 1111111111100110 (  26)

64 64 Vergelijking: 10-complement (Decimaal) Voorbeeld: 4 decimale cijfers positief: 0000 … 4999 negatief: 10 4  | X |  1  9999 = 10000  1  2  9998  4000  6000  5000  5000

65 65 10-Complement Som 0500 + 9660 = 10160  0160 (500) + (  340) = (160) Product 0120  9960 = 1495200  5200 (120)  (  40) = (  4800) Overloop mogelijk! 3500 + 2000 = 5500 (3500) + (2000) = ( - 4500) !!!

66 66 1-Complement Positief: 1 e bit = 0, overige zie natuurlijke getallen Negatief: 2 n  1  | X | Getallenbereik [  2 n-1  1)...  1,  0, +0, +1, … +(2 n-1  1)] Verouderd (niet meer gebruikt)

67 67 Plus 2 n-1 Notatie 000…000 000…001 000…010 000…011 … 011…110 011…111 100…000 100…001 100…010 100…011 … 111…110 111…111  0  1  2  3  2 n-1  2  2 n-1  1   2 n-1   2 n-1    2 n-1    2 n-1    2   1

68 68 Plus 2 n-1 Getallenbereik [  2 n-1,  (2 n-1  1)...  1, +0, +1, … +(2 n-1  1)] Asymmetrisch bereik! 0 heeft slechts 1 voorstelling = 2-complement met omgekeerde tekenbit Voordeel: positief getal > negatief getal

69 69 Vergelijking (8-bit getallen)

70 70 Vergelijking (8-bit getallen)

71 71 Gebroken Getallen

72 72 Gebroken getallen Gewichten met negatieve exponent c -1 r -1 + c -2 r -2 + … + c -m r -m Voorstelling = c k … c 1 c 0. c -1 c -2 … c -m c k r k + … + c 1 r 1 + c 0 r 0 +

73 73 Gebroken Getallen Omzetting Decimaal  Binair Omzetting Binair  Decimaal Gebroken getallen in de computer –Vaste Komma Voorstelling –Bewegende Komma Voorstelling

74 74 Omzetting Binair  Decimaal c -1 2 -1 + c -2 2 -2 + … + c -(m-1) 2 -(m-1) + c -m 2 -m =c -1 2 -1 + c -2 2 -2 + … + 2 -(m-1) ( c -(m-1) + c -m 2 -1 ) = 2 -1 ( c -1 + 2 -1 ( c -2 + … + 2 -1 ( c -(m-1) + 2 -1 c -m )

75 75 Omzetting Binair  Decimaal 0.001010 555110 3216842 5555110 3216842  2 ++++++

76 76 Omzetting Decimaal  Binair x =x 0 =c -1 2 -1 + c -2 2 -2 + … + c -m 2 -m x 1 = 2 x 0 = c -1 + c -2 2 -1 + … + c -m 2 -(m-1) x 1  1 ? c -1 = 1 x 1 < 1 ? c -1 = 0 x 2 = 2 (x 1  c -1 ) = c -2 + c -3 2 -1 + … + c -m 2 -(m-2) x 2  1 ? c -2 = 1 x 2 < 1 ? c -2 = 0 enz...

77 77 Omzetting Decimaal  Binair 0.1580. 0.3160 0.6320 1.2641 0.5280 1.0561 0.1120...

78 78 Vaste komma voorstelling Komma op vaste plaats “verondersteld” Bijvoorbeeld : 01101110 “.” na 5de bit  01101.110 (13.75) “.” na 3de bit  011.01110 (3.4375)

79 79 Vaste komma voorstelling Verband met gehele getallen (p bits na “.”) c n-1 2 n-p-1 +… + c p 2 0 + c p-1 2 -1 +…+ c 0 2 -p = (c n-1 2 n-1 +… + c p 2 p + c p-1 2 p-1 +…+ c 0 2 0 ) 2 -p Voorbeeld: 011.01110 = 01101110 × 2 -5 (3.3475) = (110) × 2 -5 = (110) ÷ 32 (decimaal) Apparatuur rekent met gehele getallen Interpretatie door SW

80 80 Vaste komma voorstelling n-bit voorstelling: 2 n mogelijke getallen per bit extra na “.”: – bereik gehalveerd – nauwkeurigheid verdubbeld... 0 bereik...

81 81 Vaste komma voorstelling Voorbeeld: n=8, p bits na “.”, 2-compl. p = 0bereik = [  128, 127] afstand = 1 p = 1bereik = [  64.0, 63,5] afstand = 0.5 p = 2bereik = [  32.0, 31.75] afstand = 0.25 p = 3bereik = [  16.0, 15.975] afstand = 0.125 …

82 82 Vaste komma voorstelling Bewerkingen – Som/Verschil – Product/Quotiënt

83 83 VKV: Som/Verschil “.” Aligneren Voorbeeld 011.10110 01110110 × 2 -5 + 0010.0011 + 00100011 × 2 -4 Aligneren (= verschuiven) 011.10110 01110110 × 2 -5 + 010.00110+ 01000110 × 2 -5 101.11100 10111100 × 2 -5

84 84 VKV: Product/Quotiënt Product # cijfers na “.” =  # cijfers na “.” 00010.010 00010010 × 2 -3 × 000001.10× 00000110 × 2 -2 011.11110 01111110 × 2 -5 3+2 = 5 Quotiënt: # extra cijfers na “.” = #cijfers na “.” (deeltal)  #cijfers na “.” (deler)

85 85 Vaste komma voorstelling Alleen als bereik van getallen gekend Anders, snel overloop! Vandaar: bewegende komma voorstelling

86 86 Bewegende komma voorstelling

87 87 Bewegende komma voorstelling Het Principe Bewegende komma voorstelling Bewerkingen – Optelling – Vermenigvuldiging

88 88 Bewegende komma voorstelling Zeer kleine getallen  zeer grote getallen Gebaseerd op “wetenschappelijke” notatie X = ± m × 10 e m = mantisse (fractie) e = exponent Voorbeelden: 3.14 = 3.14 × 10 0 = 0.314 × 10 1 0.00001 = 1.0 × 10 -5 = 0.1 × 10 -4 1999 = 1.999 × 10 3 = 0.1999 × 10 4

89 89 Bewegende komma voorstelling Meer dan één voorstellingswijze! Standaard voorstelling (Normaalvorm) –vb. 0.1  | m | < 1 (behalve voor X = 0) – omzetten naar standaard voorst. = normalisatie Voorbeelden: 3.14 × 10 0 = 0.314 × 10 -1 = 0.0314 × 10 2 1.0 × 10 -5 = 0.1 × 10 -4 = 0.01 × 10 -3 1.999 × 10 3 = 0.1999 × 10 4 = 0.001999 × 10 6

90 90 Eigenschappen Voorbeeld (decimaal talstelsel): – 3 cijfers (+ teken) voor mantisse – 2 cijfers (+ teken) voor exponent Bereik (positieve getallen) +0.100 × 10  99 tot +0.999 × 10 +99 = verschil van 199 orders van grootte slechts 5 cijfers (met teken)

91 91 Reële getallen Grote negatieve getallen <  0.999 × 10 99 Negatieve getallen tussen  0.999 × 10 99 en  0.100 × 10  99 Kleine negatieve getallen tussen  0.100 × 10  99 en 0 Nul (0) Kleine positieve getallen tussen 0 en +0.100 × 10  99 Positieve getallen tussen  0.100 × 10  99 en  0.999 × 10 99 Grote positieve getallen > +0.999 × 10 99  10 100  10  100 0  10 100  10  100 Negatieve overloop Onderloop  0 Voorstelbare getallen Positieve overloop

92 92 Reële getallen  10 100  10  100 0  10 100  10  100 Negatieve overloop Positieve overloop Onderloop  0... Niet alle getallen! 0.001 × 10 99 0.001 × 10  99 Voorstelbare getallen Relatieve afstand  constant

93 93 Invloed van # cijfers # cijfers in mantisse  (4 i.p.v. 3) nauwkeurigheid  (# getallen  ) # cijfers in exponent  (3 i.p.v. 2) gebied voorstelbare getallen , zelfde nwk  10 100  10  100 0  10 100  10  100  10 1000  10  1000 0  10 1000  10  1000

94 94 Invloed van basis basis (=10) basis  (100 i.p.v. 10) gebied breidt uit, # getallen = ongewijzigd, nwk   10 100  10  100 0  10 100  10  100  10 200  10  200 0  10 200  10  200

95 95 Reële Getallen Kans groot dat een gegeven/resultaat een van de andere getallen is Afronden – afronden: dichtste getal dat kan voorgesteld worden – naar onder (afbreken) – grensgetallen: statistisch afronden (even/oneven) x y ?

96 96 Bewegende komma voorstelling Algemeen X = ± m b e ±m = mantisse b = basis (= vast) = 2  (2, 4, 8, 16, …) e = exponent Bewegende komma voorstelling: ( ±, m, e)

97 97 Bewegende komma voorstelling b = r  (mantisse en exponent in r-tallig talstelsel) Merk op: e ± 1: m over  pos.  /  verschuiven Bijvoorbeeld:  +0.1234 × 100 3 = +0.001234 × 100 4 = +12.34 × 100 2 = +0.00001234 × 100 5  +0.1011 × 16 2 = +0.00001011 × 16 3 = +1011.0 × 16 1 = +0.000000001011 × 16 4 100 = 10 2 16 = 2 4

98 98 Bewegende komma voorstelling mantisse –voorteken, 2-complement,... – plaats van “.”: vooraan, (achteraan),... exponent – plus M notatie, voorteken normalisatie: 1/b  | m | < 1 nul –vaak kleinste exponent en mantisse = 0

99 99 IEEE Voorstel Enkelvoudige nauwkeurigheid Dubbele nauwkeurigheid texp (8 bits)mantisse (23 bits) texp (11 bits) mantisse (52 bits) Basis = 2, + 127 notatie Basis = 2, + 1023 notatie

100 100 IEEE Voorstel Genormaliseerd getal (1  |m| < 2) mantisse = 1. … (1 niet in voorstelling!) ± Nul ± Oneindig –bijv. getal / 0,... NaN (not a number) – bijv.  / , Gedenormaliseerd getal

101 101 Bewerkingen met BKV Niet rechtstreeks met voorstelling rekenen –Vooraf opsplitsen, na bewerking: samenvoegen Bewerkingen: – in SW – door Processor of Co-Processor Voorbeelden in decimaal talstelsel (DRAMA) –Som en Product (in cursustekst ook Verschil en Quotiënt)

102 102 DRAMA BKV 1 5 3 1 2 3 4 5 6 7 | Mantisse |. komma Exponent (+50 notatie) basis = 100 = 10 2 Tekencijfer (0 = +; 1 =  ) Genormaliseerd als 0.01  | m | < 1 Bereik (ongeveer): ]  10 +100, 10  107 ]  [10  107, 10 +100 [ =  0.1234567 × 100 3

103 103 DRAMA BKV 0 0 0 0 0 4 9 9 9 9 9 9 9 9 9 5 9 9 9 9 9 9 9 9 9 8 8 8 8 8 Nul + Oneindig  Oneindig NaN

104 104 DRAMA BKV: Bewerking 1 5 3 1 2 3 4 5 6 7. 1 2 3 4 5 6 7 0 0 0 Vooraf: opsplitsen in aparte registers 0 0 0 0 0 0 0 0 5 3 0 0 0 0 0 0 0 0 0 1.

105 105 DRAMA BKV: Bewerking 0 6 1 4 3 2 8 9 2 2. 4 3 2 8 9 2 1 6 3 1 Achteraf: terug samenvoegen in 1 register 0 0 0 0 0 0 0 0 6 1 0 0 0 0 0. Afronden

106 106 Som Voorbeelden 0 58 9999332 + 0 56 9352116 0.9999332 100 8 + 0.9352116 100 6 0 45 1300000 + 1 44 9200043 0.1300000 100  5 +  0.9200043 100  6

107 107 Som Stappen: –Aligneren (exponenten gelijk) – Optellen/Aftrekken – Normaliseren – Afronden Bewerkingen: –worden met meer cijfers uitgevoerd (verhoogde nwk), zie gele cijfers in berekening

108 108 Som Aligneren: – kleinste exponent  = grootste – mantisse naar rechts verschuiven 0.9999332000 (100 8 ) + 0.9352116000 (100 6 ) 0.9999332000 (100 8 ) + 0.0000935211 (100 8 ) 0.1300000000 (100  5 ) +  0.9200043000 (100  6 ) 0.1300000000 (100  5 ) +  0.0092000430 (100  5 )

109 109 Som Optellen / Aftrekken 0. 9999332000 (100  ) + 0.0000935211 (100  ) = 1.0000267211 (100  ) 0.1300000000 (100  5 ) +  0.0092000430 (100  5 ) = 0.1207999570 (100  5 )

110 110 Som Normaliseren (tenzij exp. over/onderloop) – Resultaat > 1 (naar rechts verschuiven) – Resultaat < 0.01 (naar links verschuiven) 1.0000267111 (100  ) = 0.0100002671 (100  ) 0.1207999570 (100  5 )

111 111 Som Afronden – slechts 7 cijfers behouden voor mantisse 0.0100002671 (100  ) 0.0100003 (100  ) 0 59 0100003 0.1207999570 (100  5 ) 0.1208000 (100  5 ) 0 45 1208000

112 112 Product Voorbeeld: 0 58 1284330 × 0 56 0352110 0.1284330 100 8 × 0.0352110 100 6 Stappen: – mantisses vermenigvuldigen + exponenten optellen – normaliseren – afronden

113 113 Product Mantissen vermenigvuldigen Exponenten optellen – plus M-notatie: M aftrekken m = 0.1284330000 × 0.0352110000 = 0.004522254363 e = 58 + 56  50 = 64

114 114 Product Normaliseren m = 0.004522254363  0.4522254363 e = 64 63 Afronden m = 0.4522254 0 63 4522254

115 115 Alfanumerieke Informatie

116 116 Alfanumerieke Informatie Symbolen (letters, tekens, …) Voorstellen d.m.v. een code – n bit code  max. 2 n symbolen Gestandardiseerde codes: – ASCII – EBCDIC – UNICODE

117 117 ASCII American Standard Code for Information Interchange 7-bit code Speciale tekens, hoofdletters, kleine letters, leestekens, enkele wiskundige tekens Hex TekenHex Teken HexTeken 30040 @60. 31141 A 61a 32242 B 62b...

118 118 EBCDIC Extended Binary Coded Decimal Interchange Code Op IBM-mainframes 8-bit code (veel lege plaatsen) Hoofdletters, kleine letters, leestekens, enkele wiskundige tekens Hex TekenHex TekenHexTeken F0080 ---C0 --- F1181 aC1A F2282 bC2B...

119 119 UNICODE ASCII: ok voor Engels Latin-1: 8-bit uitbreiding voor vreemde letters (á, à, ä, é, …) IS 8859-x (code page: 256 letters voor taal) UNICODE (16 bit code) – consortium van computer firma’s – ondersteund door Java, Windows NT,... – max. 65.536 symbolen, ± helft reeds toegekend


Download ppt "1 Hoofdstuk 6 Gegevensvoorstelling en Berekeningen."

Verwante presentaties


Ads door Google