1 / 119

Hoofdstuk 6

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)

jock
Télécharger la présentation

Hoofdstuk 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hoofdstuk 6 Gegevensvoorstellingen Berekeningen

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

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

  4. r-tallig talstelsel • r = grondtal (= vast) • Elk cijfer: gewicht in functie van de positie • Zij ci { 0, 1, …, r-1 } Voorstelling = cn-1cn-2 … c1c0 gewicht cn-1rn-1+cn-2rn-2+ … +c1r1+c0r0

  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!

  6. Getallen in een Computer • Eindigaantal 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. Getallen in de Computer • Bijv. stel 3 decimale cijfers (alleen pos.) • Alleen getallen uit {0, 1, …, 999 } • Niet gesloten t.o.v. som / vermenigvuldiging590 + 5301120 (= 4 cijfers! OVERLOOP) • Associativiteit?400 + (800 - 300)(400 + 800) - 300 • Distributiviteit?005 × (300 - 200)(005 × 300) - (005 × 200)

  8. Natuurlijke getallen

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

  10. Omzetting Decimaal  Binair X cn-1… c1c0 metci {0, 1} X0 = X = cn-12n-1+… +c121+c020 X0 = even: c0= 0 X0 = oneven: c0= 1 X1 = X0 div 2 = cn-12n-2+cn-22n-3+… +c120 X1 = even: c1= 0 X1 = oneven: c1= 1 enz.

  11. Omzetting Decimaal  Binair X cn-1cn-2… c1c0 metci {0, 1} X0 = X, Xi = Xi-1div 2 Xi = even: ci= 0 Xi = oneven: ci= 1

  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

  13. Omzetting Binair  Decimaal X cn-1… c1c0 metci {0, 1} X =cn-12n-1+ cn-22n-2… +c121+c020 =(cn-12+cn-2 ) 2n-2+… +c121+c020 =(( ... (( 0 + cn-1) 2+cn-2) 2+… +c1) 2+c0 X0 = 0 Xi = Xi-1 × 2 +cn-i(i=1 .. n) X = Xn

  14. × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 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 + + + + + + + + + +

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

  16. Omzetting van/naar Octaal/Hexadecimaal • Analoog binair • Eenvoudiger: omweg via binair • Decimaal  Binair Octaal/Hexadecimaal • Octaal/Hexadecimaal Binair Decimaal • Verklaring: hm16m+… +h1161+h0160 hi = ci323+ci222+ci121+ci020 en16 = 24 • Groeperen van RECHTS naar LINKS!

  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. Binary Coded Decimal (BCD) • = decimale voorstelling, cijfers binair • 4 bits per cijfer • vb. 1586 0001010110000110 • Complexe rekenregels ...

  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 • ndec. cijfers  3,3 n bits  1,11 n oct.  0,83 n hex. • bijv. 300 dec. cijfers  1000 bits

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

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

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

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

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

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

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

  28. X of 0! 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)

  29. Efficiënte Implementatie • Partieel Sommen: X of 0 • Partieel Sommen direct bijtellen X  Y = X ×  Yi2i = X ×2n× Yi2i2-n =  (X Yi2n) 2i-n = (X Y02n) 2-n+ (X Y12n) 21-n+ … + (X Yn-12n) 2-1

  30. Efficiënte Implementatie (2) X  Y = (X Y02n) 2-n+ (X Y12n) 21-n + … + (X Yn-12n) 2-1 = ((X Y02n) 2-1 + (X Y12n)) 21-n + … + (X Yn-12n) 2-1 = (… (((0 + X Y02n) 2-1 + X Y12n) 2-1) + … + X Yn-12n) 2-1 P(0) = 0 P(i) = (P(i-1) + X Yi-12n) 2-1i = 1 .. n P(n) = X  Y

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

  32. X = 11011 Y = 01101 i T A Q 0 0 0000001101 1 01101101101 (+) 0 0110110110(») 2 0 0011011011(») i T A Q 3 10000111011 (+) 0 1000011101(») 4 10101111101 (+) 0 1010111110(») 5 0 0101011111 (») X  Y Voorbeeld Merk Op: indien resultaat n bits: overloop als A  00…0

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

  34. Gehele Getallen

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

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

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

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

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

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

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

  42. 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 2-Complement  0 1 2 3 2n-1- 2 2n-1- 1  - 2n-1 - 2n-1+ 1 - 2n-1 + 2 - 2n-1+ 3 - 2 - 1

  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

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

  45. 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-22n-2 + … + X0

  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-22n-2 + … + X0 (ook geldig voor positieve getallen: xn-1 = 0) n-1 i = 0 n-1 i = 0 n-2 i = 0

  47. 2-Complement & Restklassen • congruent modulo ma = b modm 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. 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. 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

  50. 2-Complement & Restklassen Plus-conventie 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, … } 2-Complement

More Related