Hoofdstuk 6
description
Transcript of Hoofdstuk 6
1
Hoofdstuk 6
Gegevensvoorstellingen berekeningen
2
Inhoud
Talstelsels Getallen in een Computer Natuurlijke getallen Gehele getallen Gebroken getallen
Vaste komma getallen Bewegende komma getallen
Andere gegevens (letters, …)
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
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!
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
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)
7
Natuurlijke getallenNatuurlijke getallen
8
Natuurlijke getallen
Omzetting Binair Decimaal Omzetting Binair Octaal/Hexadecimaal BCD voorstelling Binair rekenen
optelling aftrekking (zie ook gehele getallen) vermenigvuldiging deling
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
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
+ + + + + + + + +
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.)
12
Binary Coded Decimal (BCD)
= decimale voorstelling, cijfers binair
4 bits per cijfer
vb. 11558866 00010001 01010101 10001000 01100110
Complexe rekenregels ...
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
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
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!
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!
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!
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
19
Gehele GetallenGehele Getallen
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
21
Gehele Binaire Getallen
Verschillende wijzen van opdelen: Voorteken 1-complement 2-complement Plus 2n-1 notatie (verhoogde notatie)
22
Voorteken
Bijv. n = 8
00001101 (= +13)
10001101 (= 13)
01111111 (= +127)
11111111 (= 127)
00000000 (= +0)
10000000 (=0)
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
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 }
}
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
26
2-Complement
Bijv. n = 8
00000000 (= +0)
00000001 (= +1)
…
00001101 (= +13)
…
01111111 (= +127)
10000000 (= 128)
10000001 (= 127)
…
10001101 (= 115)
…
11111111 (= 1)
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
28
Bewerkingen met 2-complement Inverteren Som Verschil
X Y = X + (Y) Product Aanpassing van woordlengte
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
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)
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
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
33
Gebroken GetallenGebroken Getallen
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 +
35
Gebroken Getallen
Omzetting Decimaal Binair Omzetting Binair Decimaal Gebroken getallen in de computer
Vaste Komma Voorstelling Bewegende Komma Voorstelling
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)
37
Vaste komma voorstelling
n-bit voorstelling: 2n mogelijke getallen per bit extra na “.”:
bereik gehalveerd nauwkeurigheid verdubbeld
... ...... ...
0
bereik... ...
38
Vaste komma voorstelling
Bewerkingen Som/Verschil “.” aligneren Product/Quotiënt
39
Vaste komma voorstelling
Alleen als bereik van getallen gekend Anders, snel overloop! Vandaar: bewegende komma voorstelling
40
Bewegende komma voorstelling
41
Bewegende komma voorstelling
Het Principe Bewegende komma voorstelling Bewerkingen
Optelling Vermenigvuldiging
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
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
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
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)
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
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
48
Alfanumerieke Informatie
49
Alfanumerieke Informatie
Symbolen (letters, tekens, …) Voorstellen d.m.v. een code
n bit code max. 2n symbolen Gestandardiseerde codes:
ASCII EBCDIC UNICODE
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...
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...
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
53