Gegevensvoorstelling en Berekeningen

Slides:



Advertisements
Verwante presentaties
Procenten Als je deze uitleg stap voor stap volgt, kun je na afloop prima rekenen met procenten Elke keer als je klaar bent met lezen, klik je op een toets.
Advertisements

KWALITEITSZORG november 2012
Voorrangsregels bij rekenen (2)
- Hoe noem je uitkomsten?
Rekenen met procenten Rekenen met procenten.
‘SMS’ Studeren met Succes deel 1
Wat was toen het grootste het grootste probleem van de van de FOD?
Standaard-bewerkingen
Rekenwerk Alle mogelijkheden die je tegenkomt.
Presentatie cliëntenonderzoek. Algemeen Gehouden in december 2013 (doorlopend tot eind januari) DoelgroepVerzondenOntvangen% LG wonen en dagbesteding.
NEDERLANDS WOORD BEELD IN & IN Klik met de muis
November 2013 Opinieonderzoek Vlaanderen – oktober 2013 Opiniepeiling Vlaanderen uitgevoerd op het iVOXpanel.
Uitgaven aan zorg per financieringsbron / /Hoofdstuk 2 Zorg in perspectief /pagina 1.
Informatica klas 4 Hoofdstuk 1
Duurzaamheid en kosten
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
Ronde (Sport & Spel) Quiz Night !
Rekenen met procenten Rekenen met procenten.
Kb.1 Ik leer op een goede manier optellen en aftrekken
Hoofdstuk 2: § 2.1: Procenten

Nooit meer onnodig groen? Luuk Misdom, IT&T
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
Gegevens, gegevensverwerking, informatie. Wat zijn gegevens? Feiten, begrippen, kenmerken… zoals namen, adressen, telefoonnummers, prijzen, hoeveelheden….
Regels voor het vermenigvuldigen
Rekenregels van machten
Lineaire functies y is een lineaire functie van x betekent y = ax + b
Voorbeeld a5a · 4b = 20ab b-5a · 4a = -20a 2 c-2a · -6a = 12a 2 d5a · -b · 6c = -30abc e-5b · 3a · -2 = 30ab f-2 · -a = 2a opgave 1 a7a + 8a = 15a b6a.
Lineaire functies Lineaire functie
Regelmaat in getallen … … …
Centrummaten gemiddelde
Regelmaat in getallen (1).
1 het type x² = getal 2 ontbinden in factoren 3 de abc-formule
Oefeningen F-toetsen ANOVA.
1Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen &  vorige toestand uitgang.
Sequentiële schakelingen
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
Bewegen Hoofdstuk 3 Beweging Ing. J. van de Worp.
Bewegen Hoofdstuk 3 Beweging Ing. J. van de Worp.
In dit vakje zie je hoeveel je moet betalen. Uit de volgende drie vakjes kan je dan kiezen. Er is er telkens maar eentje juist. Ken je het juiste antwoord,
Foto 65 – wegenis + parking + rechts G01 Foto 66 – G01.
Seminarie 1: Pythagoreïsche drietallen
Talstelsels, rekenen en rekenschakelingen
Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen;  vorige toestand uitgang.
Talstelsels, rekenen en rekenschakelingen
ribwis1 Toegepaste wiskunde Lesweek 2
ribwis1 Toegepaste wiskunde – Differentieren Lesweek 7
Inger Plaisier Marjolein Broese van Groenou Saskia Keuzenkamp
Een bakje kwark kost € 1,27. Hoeveel kosten vijf bakjes? 5 x € 1,27 = 5 x € 1,00 = € 5,00 5 x € 0,20 = € 1,00 5 x € 0,07 = € 0, € 6,35 Een.
SAMENWERKING WO EN HBO BIJ AANSLUITINGSONDERZOEK V0-HO Rob Andeweg DAIR 7 en 8 november 2007.
Cijfers Zorg en Gezondheid
Standaard-bewerkingen
EFS Seminar Discriminatie van pensioen- en beleggingsfondsen
Deel 2. Hoofdrekenend aftrekken
Statistiekbegrippen en hoe je ze berekent!!
Hoe gaat dit spel te werk?! Klik op het antwoord dat juist is. Klik op de pijl om door te gaan!
Eerst even wat uitleg. Klik op het juiste antwoord als je het weet.
Gegevensvoorstelling en berekeningen
Op reis naar een dierentuin
Informatica: Binair rekenen.
Hoofdstuk 9 havo KWADRATEN EN LETTERS
Uitleg scheikundige begrippen
STIMULANS KWALITEITSZORG juni 2014.
De steen van Rosetta Jean-François Champollion (1822) Hiëroglyfen – Demotisch – Grieks.
Compter en français (tellen in het Frans)
Culturele Atlas 2004 Gelderland en Overijssel. Culturele Atlas, Enschede ( 76)Apeldoorn ( 92) Zwolle (121)Nijmegen
Openbaar je talent Service public, talent particulier.
Bits & bytes.
Transcript van de presentatie:

Gegevensvoorstelling en Berekeningen 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) Voorstelling = “naam” Eigenschappen (priem, deelbaar, …) Voorstelling = “naam” Systematiek: Talstelsel Berekeningen in het talstelsel Voorbeeld: r-tallig talstel

cn-1 rn-1 + cn-2 rn-2 + … + c1 r1 + c0 r0 r-tallig talstelsel r = grondtal (= vast) Elk cijfer: gewicht in functie van de positie Zij ci  { 0, 1, …, r-1 } Voorstelling = cn-1 cn-2 … c1 c0 gewicht cn-1 rn-1 + cn-2 rn-2 + … + c1 r1 + c0 r0

Voorbeelden Decimaal r = 10, c {0, 1, …, 9} Binair r = 2, c {0, 1} 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!

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

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)

Natuurlijke getallen

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

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.

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

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

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

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

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

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!

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

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

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

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

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

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

Opteller (OPT) Xi Yi Oi Si Ti+1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 Xi Yi Ti Si (som) Ti+1 (overdracht) 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 HOPT Xi Yi Ti OF Ti+1 Si O T S

Optelschakeling (parallel) Xn -1 Xn -2 X2 X1 X0 OPT OPT OPT OPT HOPT Yn -1 Yn -2 Y2 Y1 Y0 Overloop! Sn-1 Sn -2 S2 S1 S0

Optelschakeling (serieel) schuifregisters Xi X-register S S-register OPT Yi T Y-register Ti overdracht 1 OVERLOOP? OVI, PO7 Stap = n Initieel 0 (Stap=0)

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 0 1 1 10  lenen 0 10

Verschilschakeling (parallel) Xn -1 Xn -2 X2 X1 X0 AFT AFT AFT AFT HAFT Yn -1 Yn -2 Y2 Y1 Y0 Fout! Vn-1 Vn -2 V2 V1 V0

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!

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

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

Algoritme Xn-1 X0 ... Q0 = 1 N bit opteller T An-1 A0 ... Qn-1 Q0 ... T  0, A  00…0, Q  Y N keer: (a) Q0 = 1: C, A  A + X (b) verschuif T, A, Q = verschuif naar rechts

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

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

Gehele Getallen

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

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

 Xi 2i . Voorteken Eerste Bit = Tekenbit Tekenbit 0: positief Xn-2 X0 ... Xn-1  Xi 2i . i = 0 n-2 Tekenbit 0: positief 1: negatief

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

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

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

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

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

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

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

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

2-Complement = - 2n-1 - 2n-1 + 1 × 2n-1 +  Xi 2i 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) n-1 i = 0 n-1 i = 0 n-2 i = 0

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

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

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

2-Complement & Restklassen Restklassen 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

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

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

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

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

... Inverteren Schakeling: n × NIET, n × HOPT X = xn-1 x2 x1 x0 -X =Y= yn-1 y2 y1 y0

Som Xn Xn -1 X2 X1 X0 Yn Yn -1 Y2 Y1 Y0 Sn Sn -1 S2 S1 S0 OPT OPT OPT HOPT Yn Yn -1 Y2 Y1 Y0 Sn Sn -1 S2 S1 S0

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

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

Som Overloopdetectie = eenvoudig Voorbeelden: (n=8) 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)

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

Optelling Xn Xn -1 X2 X1 X0 Yn Yn -1 Y2 Y1 Y0 EOF Sn Sn -1 S2 S1 S0 HOPT Yn Yn -1 Y2 Y1 Y0 EOF Sn Sn -1 S2 S1 S0 Overloop (indien 1)

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

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)

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

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

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

Plus 2n-1 Notatie 000…000 000…001 000…010 000…011 … 011…110 011…111  - 2n-1  - 2n-1 + 1  - 2n-1 + 2  - 2n-1 + 3  - 2  - 1 100…000 100…001 100…010 100…011 … 111…110 111…111  0  1  2  3  2n-1 - 2  2n-1 - 1

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

Vergelijking (8-bit getallen)

Vergelijking (8-bit getallen)

Gebroken Getallen

Gebroken getallen ck rk + … + c1 r1 + c0 r0 + Gewichten met negatieve exponent Voorstelling = ck … c1 c0 . c-1 c-2 … c-m ck rk + … + c1 r1 + c0 r0 + c-1 r-1 + c-2 r-2 + … +c-m r-m

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

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)

Omzetting Binair  Decimaal 0. 0 0 1 0 1 0 5 5 5 1 1 0 32 16 8 4 2 5 5 5 5 1 1 0 32 16 8 4 2 + + + + + +  2  2  2  2  2  2

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

Omzetting Decimaal  Binair 0.158 0. 0.316 0 0.632 0 1.264 1 0.528 0 1.056 1 0.112 0 ...

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

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

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

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 …

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

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

VKV: Product/Quotiënt # 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)

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

Bewegende komma voorstelling

Bewegende komma voorstelling Het Principe Bewegende komma voorstelling Bewerkingen Optelling Vermenigvuldiging

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

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

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)

Reële getallen Negatieve overloop Voorstelbare getallen Positieve overloop Onderloop  0 Grote negatieve getallen < -0.999 × 1099 Negatieve getallen tussen -0.999 × 1099 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 × 1099 Grote positieve getallen > +0.999 × 1099 -10100 -10-100 +10100 +10-100

Reële getallen ... Niet alle getallen! Negatieve overloop Voorstelbare getallen Voorstelbare getallen Positieve overloop Onderloop  0 -10100 -10-100 +10100 +10-100 ... Niet alle getallen! 0.001 × 1099 0.001 × 10-99 Relatieve afstand  constant

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 -10-100 +10-100 +10100 -101000 -10-1000 +10-1000 +101000

Invloed van basis basis (=10) basis  (100 i.p.v. 10) gebied breidt uit, # getallen = ongewijzigd, nwk  -10100 -10-100 +10-100 +10100 -10200 -10-200 +10-200 +10200

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

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

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

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

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

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

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)

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

DRAMA BKV 0 0 0 0 0 0 0 0 0 0 Nul 4 9 9 9 9 9 9 9 9 9 + Oneindig 5 9 9 9 9 9 9 9 9 9 - Oneindig 8 8 8 8 8 8 8 8 8 8 NaN

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

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

Som Voorbeelden 0 58 9999332 + 0 56 9352116 0.9999332 1008 + 0.9352116 1006 0 45 1300000 + 1 44 9200043 0.1300000 100-5 + -0.9200043 100-6

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

Som Aligneren: kleinste exponent  = grootste mantisse naar rechts verschuiven 0.9999332000 (1008) + 0.9352116000 (1006) 0.9999332000 (1008) + 0.0000935211 (1008) 0.1300000000 (100-5) + -0.9200043000 (100-6) 0.1300000000 (100-5) + -0.0092000430 (100-5)

Som Optellen / Aftrekken 0. 9999332000 (1008) + 0.0000935211 (1008) = 1.0000267211 (1008) 0.1300000000 (100-5) + -0.0092000430 (100-5) = 0.1207999570 (100-5)

Som Normaliseren (tenzij exp. over/onderloop) 1.0000267111 (1008) Resultaat > 1 (naar rechts verschuiven) Resultaat < 0.01 (naar links verschuiven) 1.0000267111 (1008) = 0.0100002671 (1009) 0.1207999570 (100-5)

Som Afronden slechts 7 cijfers behouden voor mantisse 0.0100002671 (1009) 0.0100003 (1009) 0 59 0100003 0.1207999570 (100-5) 0.1208000 (100-5) 0 45 1208000

Product Voorbeeld: 0 58 1284330 × 0 56 0352110 0.1284330 1008 × 0.0352110 1006 Stappen: mantisses vermenigvuldigen + exponenten optellen normaliseren afronden

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

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

Alfanumerieke Informatie

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

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 a 32 2 42 B 62 b ...

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 A F2 2 82 b C2 B ...

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