Hoofdstuk 6

119
1 Hoofdstuk 6 Gegevensvoorstelling en Berekeningen

description

Hoofdstuk 6. Gegevensvoorstelling en Berekeningen. Inhoud. Talstelsels Getallen in een Computer Natuurlijke getallen Gehele getallen Gebroken getallen Bewegende komma getallen Andere gegevens (letters, …). Talstelsels. Getal = abstract (hoeveelheid) - PowerPoint PPT Presentation

Transcript of Hoofdstuk 6

Page 1: Hoofdstuk 6

1

Hoofdstuk 6

Gegevensvoorstellingen Berekeningen

Page 2: Hoofdstuk 6

2

Inhoud

• Talstelsels

• Getallen in een Computer

• Natuurlijke getallen

• Gehele getallen

• Gebroken getallen

• Bewegende komma getallen

• Andere gegevens (letters, …)

Page 3: Hoofdstuk 6

3

Talstelsels

• Getal = abstract (hoeveelheid)– Eigenschappen (priem, deelbaar, …)

• Voorstelling = “naam”– Systematiek: Talstelsel– Berekeningen in het talstelsel– Voorbeeld: r-tallig talstel

Page 4: Hoofdstuk 6

4

r-tallig talstelsel

• r = grondtal (= vast)

• Elk cijfer: gewicht in functie van de positie

• Zij ci { 0, 1, …, r-1 }

cn-1 rn-1 + cn-2 rn-2 + … + c1 r1 + c0 r0

Voorstelling = cn-1 cn-2 … c1 c0

gewicht

Page 5: Hoofdstuk 6

5

Voorbeelden

• Decimaal r = 10, c {0, 1, …, 9}1235

• Binair r = 2, c {0, 1}10011010011

• Octaal r = 8, c {0, 1, …, 7}2323

• Hexadecimaal r = 16, c {0, ..., 9, A, …, F}4D3

MO: voorstellingen, zelfde getal!

Page 6: Hoofdstuk 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

Page 7: Hoofdstuk 6

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)

Page 8: Hoofdstuk 6

8

Natuurlijke getallenNatuurlijke getallenNatuurlijke getallenNatuurlijke getallen

Page 9: Hoofdstuk 6

9

Natuurlijke getallen

• Omzetting Binair Decimaal• Omzetting Binair Octaal/Hexadecimaal• BCD voorstelling• Binair rekenen

– optelling– aftrekking (zie ook gehele getallen)– vermenigvuldiging– deling

Page 10: Hoofdstuk 6

10

Omzetting Decimaal Binair

X cn-1 … c1 c0 met ci {0, 1}

X0 = X = cn-1 2n-1 + … + c1 21 + c0 20

X0 = even: c0 = 0 X0 = oneven: c0 = 1

X1 = X0 div 2 = cn-1 2n-2 + cn-2 2n-3 + … + c1 20

X1 = even: c1 = 0 X1 = oneven: c1 = 1

enz.

Page 11: Hoofdstuk 6

11

Omzetting Decimaal Binair

X cn-1 cn-2 … c1 c0 met ci {0, 1}

X0 = X, Xi = Xi-1 div 2

Xi = even: ci = 0 Xi = oneven: ci = 1

Page 12: Hoofdstuk 6

12

Omzetting Decimaal Binair 746 0

373 1

186 0

93 1

46 0

23 1

11 1

5 1

2 0

1 1

1 0 1 1 1 0 1 0 1 0

Page 13: Hoofdstuk 6

13

Omzetting Binair Decimaal

X cn-1 … c1 c0 met ci {0, 1}

X = cn-1 2n-1 + cn-2 2n-2 … + c1 21 + c0 20

= (cn-1 2 + cn-2 ) 2n-2 + … + c1 21 + c0 20

= (( ... (( 0 + cn-1) 2 + cn-2) 2 + … + c1) 2 + c0

X0 = 0 Xi = Xi-1 × 2 + cn-i (i=1 .. n)

X = Xn

Page 14: Hoofdstuk 6

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

× 2

× 2

× 2

× 2

× 2

× 2

× 2

× 2

+ + + + + + + + + +

Page 15: Hoofdstuk 6

15

Octaal / Hexadecimaal

• Compacter dan Binair

• Nauw verwant met Binair

• Gebruik: – Programmeertalen– Tonen van inhoud van Geheugen/Register

Page 16: Hoofdstuk 6

16

Omzetting van/naar Octaal/Hexadecimaal

• Analoog binair

• Eenvoudiger: omweg via binair– Decimaal Binair Octaal/Hexadecimaal– Octaal/Hexadecimaal Binair Decimaal

• Verklaring:

hm 16m + … + h1 161 + h0 160

hi = ci3 23 + ci2 22 + ci1 21 + ci0 20 en 16 = 24

• Groeperen van RECHTS naar LINKS!

Page 17: Hoofdstuk 6

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

Page 18: Hoofdstuk 6

18

Binary Coded Decimal (BCD)

• = decimale voorstelling, cijfers binair

• 4 bits per cijfer

• vb. 1586 0001 0101 1000 0110

• Complexe rekenregels ...

Page 19: Hoofdstuk 6

19

Aantal Cijfers

• n decimale cijfers

• b bits

10n-1 x < 10n en 2b-1 x < 2b

dus 10n 2b

bijgevolg b log2 10n = n log2 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

Page 20: Hoofdstuk 6

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

Page 21: Hoofdstuk 6

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

OPT HOPT

Page 22: Hoofdstuk 6

22

Halve Opteller (HOPT)

X Y S T

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

HOPT

X Y

S (som)T

(overdracht)

EN

EOFXY S

T

Page 23: Hoofdstuk 6

23

Opteller (OPT)Xi Yi Oi Si Ti+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

Xi Yi Ti

Si (som)Ti+1

(overdracht)

HOPTXi

Yi

Ti

HOPT

OF Ti+1

Si

O

TS

S

Page 24: Hoofdstuk 6

24

Optelschakeling (parallel)

OPT HOPTOPTOPTOPT

Xn -1 Xn -2 X2 X1 X0

Yn -1 Yn -2 Y2 Y1 Y0

Sn-1 Sn -2 S2 S1 S0

Overloop!

Page 25: Hoofdstuk 6

25

Optelschakeling (serieel)

OPT

1

overdracht

X-register

Y-register

S-registerS

T

Initieel 0 (Stap=0)Stap = n

OVERLOOP?

OVI, PO7

Xi

Yi

Ti

schuifregisters

Page 26: Hoofdstuk 6

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

Page 27: Hoofdstuk 6

27

Verschilschakeling (parallel)

AFT HAFTAFTAFTAFT

Xn -1 Xn -2 X2 X1 X0

Yn -1 Yn -2 Y2 Y1 Y0

Vn-1 Vn -2 V2 V1 V0

Fout!

Page 28: Hoofdstuk 6

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 (XY)

X of 0!

Page 29: Hoofdstuk 6

29

Efficiënte Implementatie

• Partieel Sommen: X of 0

• Partieel Sommen direct bijtellen

X Y = X × Yi 2i

= X × 2n × Yi 2i 2-n

= (X Yi 2n) 2i-n

= (X Y0 2n ) 2-n + (X Y1 2n ) 21-n + …

+ (X Yn-1 2n ) 2-1

Page 30: Hoofdstuk 6

30

Efficiënte Implementatie (2)

X Y = (X Y0 2n ) 2-n + (X Y1 2n ) 21-n + … + (X Yn-1 2n ) 2-1

= ((X Y0 2n ) 2-1 + (X Y1 2n )) 21-n + … + (X Yn-1 2n ) 2-1

= (… (((0 + X Y0 2n ) 2-1 + X Y1 2n ) 2-1) + … + X Yn-1 2n ) 2-1

P(0) = 0

P(i) = (P(i-1) + X Yi-1 2n ) 2-1 i = 1 .. n

P(n) = X Y

Page 31: Hoofdstuk 6

31

Algoritme

An-1 A0... Qn-1 Q0...

Xn-1 X0...

T

N bit optellerQ0 = 1

= verschuif naar rechts

T 0, A 00…0, Q YN keer: (a) Q0 = 1: C, A A + X (b) verschuif T, A, Q

Page 32: Hoofdstuk 6

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

Page 33: Hoofdstuk 6

33

Deling

• Deling = inverse vermenigvuldiging

• Vermenigvuldiging = # { optelling, versch. }

• Deling = # { aftrekking, verschuiving }

Page 34: Hoofdstuk 6

34

Gehele GetallenGehele GetallenGehele GetallenGehele Getallen

Page 35: Hoofdstuk 6

35

Gehele Binaire Getallen

• n bit-getallen

• 0000…000 t.e.m. 1111…111

n bits n bits

• Natuurlijke getallen: [0, 2n 1]

• Gehele getallen: ½ stellen positieve getallen voor ½ stellen negatieve getallen voor

Page 36: Hoofdstuk 6

36

Gehele Binaire Getallen

• Verschillende wijzen van opdelen:– Voorteken– 1-complement– 2-complement– Plus 2n-1 notatie

Page 37: Hoofdstuk 6

37

Voorteken

• Eerste Bit = Tekenbit

Xn-2 X0...Xn-1

Tekenbit0: positief1: negatief

Xi 2i

.i = 0

n-2

Page 38: Hoofdstuk 6

38

Voorteken

• Bijv. n = 8

00001101 (= +13)

10001101 (= 13)

01111111 (= +127)

11111111 (= 127)

00000000 (= +0)

10000000 (=0)

Page 39: Hoofdstuk 6

39

Voorteken

• Getallenbereik:

[2n-11) ... 1, 0, +0, +1, … +(2n-11)]

• Symmetrisch bereik

• 0 =?= +0

• Rekenregels Complex (+, ) X = Xn-1 Xn-2 … X1 X met Xn-1 = tekenbit

Gevraagd: Z := X + Y

Page 40: Hoofdstuk 6

40

Voorteken: Optelling

{ Z = X + Y }

if ( Xn-1 == Yn-1 ) /* Xn-1, Yn-1 = tekenbit */

{ Zn-1 = Xn-1; Zn-2..0 = Xn-2..0 + Yn-2..0 }

else {

if (Xn-2..0 > Yn-2..0 )

{ Zn-1 = Xn-1; Zn-2..0 = Xn-2..0 Yn-2..0 }

else { Zn-1 = Yn-1; Zn-2..0 = Yn-2..0 Xn-2..0 }

}

Page 41: Hoofdstuk 6

41

Voorteken: Vermenigvuldiging

{ Z = X × Y }

Zn-1 = Xn-1 EOF Yn-1 ;

Zn-2..0 = Xn-2..0 * Yn-2..0 ; /* test op overloop! */

Page 42: Hoofdstuk 6

42

2-Complement2-Complement2-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

2n-1 2 2n-1 1

2n-1

2n-1 1

2n-1 2

2n-1 3

2 1

Page 43: Hoofdstuk 6

43

2-Complement

• Positief: 1e bit = 0, overige zie natuurlijke getallen

• Negatief: 2n | X |

1 2n 1 = 111…111

2 2n 2 = 111…110

2n-1 2n 2n-1 = 2n-1 = 100…000

Page 44: Hoofdstuk 6

44

2-Complement

• Bijv. n = 8

00000000 (= +0)

00000001 (= +1)…

00001101 (= +13)

01111111 (= +127)

10000000 (= 128)

10000001 (= 127)…

10001101 (= 115)

11111111 (= 1)

Page 45: Hoofdstuk 6

45

2-Complement

• Getallenbereik

[2n-1, (2n-11) ... 1, +0, +1, … +(2n-11)]

• Asymmetrisch bereik!

• 0 heeft slechts 1 voorstelling

• Rekenregels eenvoudig!

• Omrekenformule:

X = Xn-1 (2n-1) + Xn-2 2n-2 + … + X0

Page 46: Hoofdstuk 6

46

2-Complement• Omrekenformule:

X < 0: 2n | X | = Xi 2i (Xn-1 = 1)

| X | = 2n + Xi 2i

= 2n-1 2n-1 + 1 × 2n-1 + Xi 2i

• X = Xn-1 (2n-1) + Xn-2 2n-2 + … + X0

(ook geldig voor positieve getallen: xn-1 = 0)

i = 0 n-2

n-1

i = 0

i = 0

n-1

Page 47: Hoofdstuk 6

47

2-Complement & Restklassen

• congruent modulo ma = 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, … }...

Page 48: Hoofdstuk 6

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, xy t a r, b s, ab t

• Q, +, × is commutatieve ring

Page 49: Hoofdstuk 6

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, … }

+ 0 1 2 3 4 × 0 1 2 3 40 0 1 2 3 4 0 0 0 0 0 0

1 1 2 3 4 0 1 0 1 2 3 4

2 2 3 4 0 1 2 0 2 4 1 3

3 3 4 0 1 2 3 0 3 1 4 2

4 4 0 1 2 3 4 0 4 3 2 1

Page 50: Hoofdstuk 6

50

2-Complement & RestklassenRestklassen modulo 2n

0 = { …, 2n+1, 2n, 0, 2n, 2n+1 … }

1 = { …, 2n+1, 1, 2n+1, … }

2 = { …, 2n+2, 2, 2n+2, … }…

2n-1 1 = { …, 2n-1 1, 2n-1 1, 2n +2n-1 1, … }

2n-1 = { …, 2n-1 , 2n-1, 2n +2n-1 , … }…2n 2 = { …, 2, 2n 2, 2n+1 2, … }

2n 1 = { …, 1, 2n 1, 2n+1 1, … }

Plus-conventie

2-Complement

Page 51: Hoofdstuk 6

51

2-Complement

• Besluit:

– Apparatuur werkt met restklassen

– Resultaat steeds modulo 2n

– d.i. alleen laatste n bits behouden

Page 52: Hoofdstuk 6

52

Bewerkingen met 2-complement

• Inverteren

• Som

• Verschil X Y = X + (Y)

• Product

• Aanpassing van woordlengte

Page 53: Hoofdstuk 6

53

Inverteren

• X X• X negatief: 2n | X |

2n = (2n 1 + 1)

2n | X | = 2n 1 | X | + 1

= 111…11 |X| + 1

= (1Xn-1) (1Xn-2) … (1X0) + 1

• Bijgevolg: bits omkeren en 1 bijtellen

Page 54: Hoofdstuk 6

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)

Page 55: Hoofdstuk 6

55

Inverteren

• Schakeling: n × NIET, n × HOPT

HOPT HOPTHOPT HOPT

1

X = xn-1 x2 x1 x0

X =Y= yn-1 y2 y1 y0

...

Page 56: Hoofdstuk 6

56

Som

OPT HOPTOPTOPT

Xn Xn -1 X2 X1 X0

Yn Yn -1 Y2 Y1 Y0

Sn Sn -1 S2 S1 S0

OPT

Page 57: Hoofdstuk 6

57

Som

• Voorbeelden (n = 8)

00010110 (22)

+ 11100111 (-25)

11111101 (-3)

00011001 (25)

+ 11101010 (-22)

100000011 (3)

11100111 (-25)

+ 11110101 (-11)

111011100 (-36)

Page 58: Hoofdstuk 6

58

Som

• Overloop:x, y > 0 x+y < 0x, y < 0 x+y > 0

• Voorbeelden: (n=8)

01010110 (86) 10010111 (-105)

+ 01000001 (65) + 10010100 (-108)

10010111 (-105) 100101011 (43)

Page 59: Hoofdstuk 6

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)

Page 60: Hoofdstuk 6

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

Page 61: Hoofdstuk 6

61

Optelling

OPT HOPTOPT

Xn Xn -1 X2 X1 X0

Yn Yn -1 Y2 Y1 Y0

Sn Sn -1 S2 S1 S0

OPT OPT

Overloop (indien 1)

EOF

Page 62: Hoofdstuk 6

62

Product

11110011 (-13) × 00000111 (7)

11110011

11110011

11110011

11010100101 10100101 (-91)

• Overloop Mogelijk!• Algoritme van vermenigv. natuurlijke getallen

Page 63: Hoofdstuk 6

63

Aanpassing woordlengte

• Aanpassen lengte v/d voorstelling– Kopiëren van tekenbit

• Voorbeeld: 8-bit vs. 16-bit00011010 (26) 0000000000001010 (26)

11100110 (26) 1111111111100110 (26)

Page 64: Hoofdstuk 6

64

Vergelijking: 10-complement(Decimaal)

• Voorbeeld: 4 decimale cijfers

• positief: 0000 … 4999

• negatief: 104 | X |

1 9999 = 10000 12 9998

4000 6000

5000 5000

Page 65: Hoofdstuk 6

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

Page 66: Hoofdstuk 6

66

1-Complement

• Positief: 1e bit = 0, overige zie natuurlijke getallen

• Negatief: 2n 1 | X |• Getallenbereik

[2n-11) ... 1, 0, +0, +1, … +(2n-11)]

• Verouderd (niet meer gebruikt)

Page 67: Hoofdstuk 6

67

Plus 2n-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

2n-1 2 2n-1 1

2n-1

2n-1 2n-

1 2n-1

2 1

Page 68: Hoofdstuk 6

68

Plus 2n-1

• Getallenbereik

[2n-1, (2n-11) ... 1, +0, +1, … +(2n-11)]

• Asymmetrisch bereik!

• 0 heeft slechts 1 voorstelling

• = 2-complement met omgekeerde tekenbit

• Voordeel: positief getal > negatief getal

Page 69: Hoofdstuk 6

69

Vergelijking (8-bit getallen)Dec. Voorteken 1-Compl. 2-Compl. Plus 128

0 00000000 00000000 00000000 100000001 00000001 00000001 00000001 100000012 00000010 00000010 00000010 100000105 00000101 00000101 00000101 10000101

10 00001010 00001010 00001010 10001010100 01100100 01100100 01100100 11100100126 01111110 01111110 01111110 11111110127 01111111 01111111 01111111 11111111128 onbest. onbest. onbest. onbest.

Page 70: Hoofdstuk 6

70

Vergelijking (8-bit getallen)Dec. Voorteken 1-Compl. 2-Compl. Plus 128

-0 10000000 11111111 onbest. onbest.-1 10000001 11111110 11111111 01111111-2 10000010 11111101 11111110 01111110-5 10000101 11111010 11111011 01111100

-10 10001010 11110101 11110110 01110110-100 11100100 10011011 10011100 00011100-126 11111110 10000001 10000010 00000010-127 11111111 10000000 10000001 00000001-128 onbest. onbest. 10000000 00000000

Page 71: Hoofdstuk 6

71

Gebroken GetallenGebroken GetallenGebroken GetallenGebroken Getallen

Page 72: Hoofdstuk 6

72

Gebroken getallenGebroken getallen

• Gewichten met negatieve exponent

c-1 r-1 + c-2 r-2 + … +c-m r-m

Voorstelling = ck … c1 c0 . c-1 c-2 … c-m

ck rk + … + c1 r1 + c0 r0 +

Page 73: Hoofdstuk 6

73

Gebroken Getallen

• Omzetting Decimaal Binair

• Omzetting Binair Decimaal

• Gebroken getallen in de computer– Vaste Komma Voorstelling– Bewegende Komma Voorstelling

Page 74: Hoofdstuk 6

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)

Page 75: Hoofdstuk 6

75

Omzetting Binair Decimaal

0. 0 0 1 0 1 0

5 5 5 1 1 032 16 8 4 2

5 5 5 5 1 1 032 16 8 4 2

2

+ + + + + +

2 2

2 2

2

Page 76: Hoofdstuk 6

76

Omzetting Decimaal Binair

x = x0 = c-1 2-1 + c-2 2-2 + … + c-m 2-m

x1 = 2 x0 = c-1 + c-2 2-1 + … + c-m 2-(m-1)

x1 1 ? c-1 = 1 x1< 1 ? c-1 = 0

x2 = 2 (x1 c-1 ) = c-2 + c-3 2-1 +… + c-m 2-(m-2)

x2 1 ? c-2 = 1 x2< 1 ? c-2 = 0

enz ...

Page 77: Hoofdstuk 6

77

Omzetting Decimaal Binair

0.158 0.0.316 00.632 01.264 10.528 01.056 10.112 0...

Page 78: Hoofdstuk 6

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)

Page 79: Hoofdstuk 6

79

Vaste komma voorstelling

• Verband met gehele getallen (p bits na “.”)

cn-1 2n-p-1 +… + cp 20 + cp-1 2-1 +…+ c0 2-p

= (cn-1 2n-1 +… + cp 2p + cp-1 2p-1 +…+ c0 20) 2-p

• Voorbeeld:011.01110 = 01101110 × 2-5

(3.3475) = (110) × 2-5 = (110) ÷ 32 (decimaal)

• Apparatuur rekent met gehele getallen

• Interpretatie door SW

Page 80: Hoofdstuk 6

80

Vaste komma voorstelling

• n-bit voorstelling: 2n mogelijke getallen

• per bit extra na “.”:– bereik gehalveerd– nauwkeurigheid verdubbeld

... ...... ...

0

bereik... ...

Page 81: Hoofdstuk 6

81

Vaste komma voorstelling

• Voorbeeld: n=8, p bits na “.”, 2-compl.p = 0 bereik = [128, 127] afstand = 1

p = 1 bereik = [64.0, 63,5] afstand = 0.5

p = 2 bereik = [32.0, 31.75] afstand = 0.25

p = 3 bereik = [16.0, 15.975] afstand = 0.125

Page 82: Hoofdstuk 6

82

Vaste komma voorstelling

• Bewerkingen– Som/Verschil– Product/Quotiënt

Page 83: Hoofdstuk 6

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

Page 84: Hoofdstuk 6

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)

Page 85: Hoofdstuk 6

85

Vaste komma voorstelling

• Alleen als bereik van getallen gekend

• Anders, snel overloop!

• Vandaar: bewegende komma voorstelling

Page 86: Hoofdstuk 6

86

Bewegende komma voorstelling

Page 87: Hoofdstuk 6

87

Bewegende komma voorstelling

• Het Principe

• Bewegende komma voorstelling

• Bewerkingen– Optelling– Vermenigvuldiging

Page 88: Hoofdstuk 6

88

Bewegende komma voorstelling

• Zeer kleine getallen zeer grote getallen• Gebaseerd op “wetenschappelijke” notatie• X = ± m × 10e

m = mantisse (fractie)e = exponent

• Voorbeelden:3.14 = 3.14 × 100 = 0.314 × 101

0.00001 = 1.0 × 10-5 = 0.1 × 10-4

1999 = 1.999 × 103 = 0.1999 × 104

Page 89: Hoofdstuk 6

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 × 100 = 0.314 × 10-1 = 0.0314 × 102 1.0 × 10-5 = 0.1 × 10-4 = 0.01 × 10-3

1.999 × 103 = 0.1999 × 104 = 0.001999 × 106

Page 90: Hoofdstuk 6

90

Eigenschappen

• Voorbeeld (decimaal talstelsel):– 3 cijfers (+ teken) voor mantisse– 2 cijfers (+ teken) voor exponent

• Bereik (positieve getallen) +0.100 × 1099 tot +0.999 × 10+99

= verschil van 199 orders van grootteslechts 5 cijfers (met teken)

Page 91: Hoofdstuk 6

91

Reële getallen

• Grote negatieve getallen < 0.999 × 1099

• Negatieve getallen tussen 0.999 × 1099 en 0.100 × 1099

• Kleine negatieve getallen tussen 0.100 × 1099 en 0

• Nul (0)

• Kleine positieve getallen tussen 0 en +0.100 × 1099

• Positieve getallen tussen 0.100 × 1099 en 0.999 × 1099

• Grote positieve getallen > +0.999 × 1099

10100 10100 0 1010010100

Negatieveoverloop Onderloop

0

Voorstelbare getallen

Voorstelbare getallen

Positieveoverloop

Page 92: Hoofdstuk 6

92

Reële getallen

10100 10100 0 1010010100

Negatieveoverloop

PositieveoverloopOnderloop

0

......

Niet alle getallen!

0.001 × 10990.001 × 1099

Voorstelbare getallen

Voorstelbare getallen

Relatieve afstand constant

Page 93: Hoofdstuk 6

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

10100 10100 0 1010010100

101000 101000 0 101000101000

Page 94: Hoofdstuk 6

94

Invloed van basis

• basis (=10)

• basis (100 i.p.v. 10)

gebied breidt uit, # getallen = ongewijzigd, nwk

10100 10100 0 1010010100

10200 10200 0 1020010200

Page 95: Hoofdstuk 6

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

?

Page 96: Hoofdstuk 6

96

Bewegende komma voorstelling

• Algemeen

X = ± m be

±m = mantisse

b = basis (= vast) = 2 (2, 4, 8, 16, …)

e = exponent

• Bewegende komma voorstelling:

(±, m, e)

Page 97: Hoofdstuk 6

97

Bewegende komma voorstelling

• b = r (mantisse en exponent in r-tallig talstelsel)

• Merk op: e ± 1: m over pos. /verschuiven

• Bijvoorbeeld: +0.1234 × 1003 = +0.001234 × 1004

= +12.34 × 1002 = +0.00001234 × 1005

+0.1011 × 162 = +0.00001011 × 163

= +1011.0 × 161 = +0.000000001011 × 164

100 = 102

16 = 24

Page 98: Hoofdstuk 6

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

Page 99: Hoofdstuk 6

99

IEEE Voorstel

• Enkelvoudige nauwkeurigheid

• Dubbele nauwkeurigheid

t exp (8 bits) mantisse (23 bits)

t exp (11 bits) mantisse (52 bits)

Basis = 2, + 127 notatie

Basis = 2, + 1023 notatie

Page 100: Hoofdstuk 6

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

Page 101: Hoofdstuk 6

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)

Page 102: Hoofdstuk 6

102

DRAMA BKV

1 5 3 1 2 3 4 5 6 7

| Mantisse |

.komma

Exponent (+50 notatie) basis = 100 = 102

Tekencijfer (0 = +; 1 = )

Genormaliseerd als 0.01 | m | < 1Bereik (ongeveer): ]10+100, 10107] [10107, 10+100[

= 0.1234567 × 1003

Page 103: Hoofdstuk 6

103

DRAMA BKV

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

Nul

+ Oneindig

Oneindig

NaN

Page 104: Hoofdstuk 6

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

.

Page 105: Hoofdstuk 6

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

.

Afronden

Page 106: Hoofdstuk 6

106

Som

• Voorbeelden

0 58 9999332 + 0 56 9352116

0.9999332 1008 + 0.9352116 1006

0 45 1300000 + 1 44 92000430.1300000 1005 + 0.9200043 1006

Page 107: Hoofdstuk 6

107

Som

• Stappen:– Aligneren (exponenten gelijk)– Optellen/Aftrekken– Normaliseren– Afronden

• Bewerkingen:– worden met meer cijfers uitgevoerd

(verhoogde nwk), zie gele cijfers in berekening

Page 108: Hoofdstuk 6

108

Som

• Aligneren:– kleinste exponent = grootste– mantisse naar rechts verschuiven

0.9999332000 (1008) + 0.9352116000 (1006)

0.9999332000 (1008) + 0.0000935211 (1008)

0.1300000000 (1005) + 0.9200043000 (1006)

0.1300000000 (1005) + 0.0092000430 (1005)

Page 109: Hoofdstuk 6

109

Som

• Optellen / Aftrekken

0. 9999332000 (100) + 0.0000935211 (100)

= 1.0000267211 (100)

0.1300000000 (1005) + 0.0092000430 (1005)

= 0.1207999570 (1005)

Page 110: Hoofdstuk 6

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 (1005)

Page 111: Hoofdstuk 6

111

Som

• Afronden– slechts 7 cijfers behouden voor mantisse

0.0100002671 (100)

0.0100003 (100) 0 59 0100003

0.1207999570 (1005)

0.1208000 (1005) 0 45 1208000

Page 112: Hoofdstuk 6

112

Product

• Voorbeeld:

0 58 1284330 × 0 56 0352110

0.1284330 1008 × 0.0352110 1006

• Stappen:– mantisses vermenigvuldigen

+ exponenten optellen– normaliseren– afronden

Page 113: Hoofdstuk 6

113

Product

• Mantissen vermenigvuldigen

• Exponenten optellen– plus M-notatie: M aftrekken

m = 0.1284330000 × 0.0352110000 = 0.004522254363

e = 58 + 56 50 = 64

Page 114: Hoofdstuk 6

114

Product

• Normaliseren

m = 0.004522254363 0.4522254363

e = 64 63

• Afronden

m = 0.4522254

0 63 4522254

Page 115: Hoofdstuk 6

115

Alfanumerieke Informatie

Page 116: Hoofdstuk 6

116

Alfanumerieke Informatie

• Symbolen (letters, tekens, …)

• Voorstellen d.m.v. een code– n bit code max. 2n symbolen

• Gestandardiseerde codes:– ASCII – EBCDIC – UNICODE

Page 117: Hoofdstuk 6

117

ASCII

• American Standard Code for Information Interchange• 7-bit code• Speciale tekens, hoofdletters, kleine letters, leestekens,

enkele wiskundige tekens

Hex Teken Hex Teken Hex Teken

30 0 40 @ 60 .31 1 41 A 61 a32 2 42 B 62 b...

Page 118: Hoofdstuk 6

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 Teken Hex Teken Hex Teken

F0 0 80 --- C0 ---F1 1 81 a C1 AF2 2 82 b C2 B...

Page 119: Hoofdstuk 6

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