Hoofdstuk 6

53
1 Hoofdstuk 6 Gegevensvoorstell ing en berekeningen

description

Hoofdstuk 6. Gegevensvoorstelling en berekeningen. Inhoud. Talstelsels Getallen in een Computer Natuurlijke getallen Gehele getallen Gebroken getallen Vaste komma getallen Bewegende komma getallen Andere gegevens (letters, …). r -tallig talstelsel. r = grondtal (= vast) - 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

Vaste komma getallen Bewegende komma getallen

Andere gegevens (letters, …)

Page 3: Hoofdstuk 6

3

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

4

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

5

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

6

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

7

Natuurlijke getallenNatuurlijke getallen

Page 8: Hoofdstuk 6

8

Natuurlijke getallen

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

optelling aftrekking (zie ook gehele getallen) vermenigvuldiging deling

Page 9: Hoofdstuk 6

9

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

10

Omzetting Binair Decimaal

1 0 1 1 1 0 1 0 1 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 11: Hoofdstuk 6

11

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

12

Binary Coded Decimal (BCD)

= decimale voorstelling, cijfers binair

4 bits per cijfer

vb. 11558866 00010001 01010101 10001000 01100110

Complexe rekenregels ...

Page 13: Hoofdstuk 6

13

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

14

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

15

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

16

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

17

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

18

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: (T,A) A + X (b) verschuif T, A, Q

X Y

Page 19: Hoofdstuk 6

19

Gehele GetallenGehele Getallen

Page 20: Hoofdstuk 6

20

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 positievepositieve getallen voor ½ stellen negatievenegatieve getallen voor

Page 21: Hoofdstuk 6

21

Gehele Binaire Getallen

Verschillende wijzen van opdelen: Voorteken 1-complement 2-complement Plus 2n-1 notatie (verhoogde notatie)

Page 22: Hoofdstuk 6

22

Voorteken

Bijv. n = 8

00001101 (= +13)

10001101 (= 13)

01111111 (= +127)

11111111 (= 127)

00000000 (= +0)

10000000 (=0)

Page 23: Hoofdstuk 6

23

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

24

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

25

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

26

2-Complement

Bijv. n = 8

00000000 (= +0)

00000001 (= +1)

00001101 (= +13)

01111111 (= +127)

10000000 (= 128)

10000001 (= 127)

10001101 (= 115)

11111111 (= 1)

Page 27: Hoofdstuk 6

27

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

28

Bewerkingen met 2-complement Inverteren Som Verschil

X Y = X + (Y) Product Aanpassing van woordlengte

Page 29: Hoofdstuk 6

29

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

30

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

31

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

- 2n-1 + 2

- 2n-1 + 3

- 2

- 1

Page 32: Hoofdstuk 6

32

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

33

Gebroken GetallenGebroken Getallen

Page 34: Hoofdstuk 6

34

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

35

Gebroken Getallen

Omzetting Decimaal Binair Omzetting Binair Decimaal Gebroken getallen in de computer

Vaste Komma Voorstelling Bewegende Komma Voorstelling

Page 36: Hoofdstuk 6

36

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

37

Vaste komma voorstelling

n-bit voorstelling: 2n mogelijke getallen per bit extra na “.”:

bereik gehalveerd nauwkeurigheid verdubbeld

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

0

bereik... ...

Page 38: Hoofdstuk 6

38

Vaste komma voorstelling

Bewerkingen Som/Verschil “.” aligneren Product/Quotiënt

Page 39: Hoofdstuk 6

39

Vaste komma voorstelling

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

Page 40: Hoofdstuk 6

40

Bewegende komma voorstelling

Page 41: Hoofdstuk 6

41

Bewegende komma voorstelling

Het Principe Bewegende komma voorstelling Bewerkingen

Optelling Vermenigvuldiging

Page 42: Hoofdstuk 6

42

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

43

Reële getallen

-10100 -10-100 0 +10100+10-100

NegatieveNegatieveoverloopoverloop

PositievePositieveoverloopoverloopOnderloop Onderloop 0 0

Voorstelbare Voorstelbare getallengetallen

Voorstelbare Voorstelbare getallengetallen

Grote negatieve getallen < -0.999 × 1099 Negatieve getallen tussen -0.999 × 1099 en -0.100 × 10-99Negatieve getallen tussen -0.999 × 1099 en -0.100 × 10-99 Kleine negatieve getallen tussen -0.100 × 10-99 en 0Kleine negatieve getallen tussen -0.100 × 10-99 en 0 Nul (0) Kleine positieve getallen tussen 0 en +0.100 × 10-99Kleine positieve getallen tussen 0 en +0.100 × 10-99 Positieve getallen tussen +0.100 × 10-99 en +0.999 × 1099Positieve getallen tussen +0.100 × 10-99 en +0.999 × 1099 Grote positieve getallen > +0.999 × 1099

Page 44: Hoofdstuk 6

44

Reële getallen

-10100 -10-100 0 +10100+10-100

NegatieveNegatieveoverloopoverloop

PositievePositieveoverloopoverloopOnderloop Onderloop 0 0

......

Niet alle getallen!

0.001 × 10990.001 × 10-99

Voorstelbare Voorstelbare getallengetallen

Voorstelbare Voorstelbare getallengetallen

Relatieve afstand constant

Page 45: Hoofdstuk 6

45

Bewegende komma voorstelling

Algemeen

X = ± m bbe

±m = mantisse

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

e = exponent

Bewegende komma voorstelling:

(±, m, e)

Page 46: Hoofdstuk 6

46

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

47

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 Product Verschil Quotiënt

Page 48: Hoofdstuk 6

48

Alfanumerieke Informatie

Page 49: Hoofdstuk 6

49

Alfanumerieke Informatie

Symbolen (letters, tekens, …) Voorstellen d.m.v. een code

n bit code max. 2n symbolen Gestandardiseerde codes:

ASCII EBCDIC UNICODE

Page 50: Hoofdstuk 6

50

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

51

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

52

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

Page 53: Hoofdstuk 6

53