280 likes | 662 Views
V1CP1 – Week 2. Getalrepresentaties. Adrie van Doesburg Leo van Moergestel Jan Nijman Daniël Telgen Wouter van Ooijen. Tientallige stelsel (decimaal). Bijvoorbeeld: 1523 (cijfers 0 t/m 9 ). Achttallig stelsel (octaal). Bijvoorbeeld: 2763 (cijfers 0 t/m 7 ).
E N D
V1CP1 – Week 2 Getalrepresentaties Adrie van Doesburg Leo van Moergestel Jan Nijman Daniël Telgen Wouter van Ooijen
Tientallige stelsel (decimaal) Bijvoorbeeld: 1523 (cijfers 0 t/m 9)
Achttallig stelsel (octaal) Bijvoorbeeld: 2763 (cijfers 0 t/m 7)
Tweetallig stelsel (binair) Bijvoorbeeld: 10111110011 (cijfers 0 en 1)
Zestientallig stelsel (hexadecimaal) Bijvoorbeeld: 5F3 (cijfers 0 t/m 9 en letters A t/m F)
Omrekenen van decimaalnaar binair 1523dec =?bin grootste 2-macht die past in 1523 210 (1024); rest 499 grootste 2-macht die past in 499 28 (256); rest 243 grootste 2-macht die past in 243 27 (128); rest 115 grootste 2-macht die past in 115 26 (64); rest 51 grootste 2-macht die past in 51 25 (32); rest 19 grootste 2-macht die past in 19 24 (16); rest 3 grootste 2-macht die past in 3 21 (2); rest 1 grootste 2-macht die past in 1 20 (1); rest 0
210 29 28 27 26 25 24 23 22 21 20 1 0 1 1 1 1 1 0 0 1 1 Omrekenen van decimaalnaar binair (2) De resultaten op een rijtje: Reken 2009(10) om naar de binaire representatie
bin 01001110001010001010110001100011 hex 4 E 2 8 A C 6 3 Bepaal zelf de octale waarde Omrekenen van binair naarhexadecimaal en octaal
MSB LSB 31 16 15 8 7 4 3 0 bit nibble byte 16 bits word 32 bits word Bits, nibbels, bytes en words
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Binair optellen
0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 Zeer eenvoudige tafel: Binair vermenigvuldigen
11111111 -127 ….. …… -3 10000011 Tekenbit (1=neg) 10000010 -2 Nadelen: twee0-en 10000001 (-1) 00000001 ( 1) + 10000010 (-2 !) 10000001 -1 10000000 -0 BIN DEC 00000000 +0 00000001 +1 00000010 +2 Tekenbit (0=pos) 00000011 +3 …… ….. 01111111 +127 Negatieve getallen
11111111 -127 ….. …… -3 11111100 Nadeel: nog steeds twee0-en 11111101 -2 11111110 -1 Flip 0-en en 1-en 11111111 -0 BIN DEC 00000000 +0 00000001 +1 Maar 11111110 (-1) 00000001 ( 1) + 11111111 (-0 !) 00000010 +2 00000011 +3 …… ….. 01111111 +127 1-complement representatie
5000 ….. 9996 Welke waarde krijgt - 45 ? N – 10000 = - 45 N = 10000 - 45 = 9955 9955 is het 10-complement van 45 9997 9998 9999 0000 0001 0002 0003 ….. 4999 10-complement
-128 10000000 Nadeel: Aantal pos. en neg. getallen is asymmetrisch …. …… -3 11111101 -2 11111110 -1 11111111 Tel boven verder DEC BIN +0 00000000 +1 00000001 +2 00000010 Er is nog steeds een tekenbit! +3 00000011 …. …… +127 01111111 2-complement representatie
Ga uit van de inverse +3 = 00000011 Flip alle bits 1-complement = 11111100 Tel er 1 bij op 1 + -3 = 11111101 Schrijf nu -15 in 2-complement representatie Schrijf -3 in 2-complement representatie
Is dit een grap? of Werkt Excel niet goed? of Is de CPU defect? Waarom moet je iets van getalrepresentaties weten?
Lees het artikel ! Lees het artikel Een computer is ook maar een mens
Ieder (niet-geheel) getal kan worden geschreven in de vorm n.dddddddddd.. x 10m, met n een cijfer≠ 0 de z.g. genormaliseerde vorm Het aantal d’s bepaalt de nauwkeurigheid De waarde van m bepaalt de grootte van het getal (m is geheel en kan positief, 0 of negatief zijn) Vb: 0.01875 = 1.875 x 10-2 1.875 = 1.875 x 100 1875 = 1.875 x 103 Representatie vanniet-gehele getallen
In het 2-tallige stelsel kan ieder (niet-geheel) getal worden geschreven in de vorm n.dddddddddd.. x 2m, met n een cijfer≠ 0 Het enige cijfer ≠ 0 is 1, dus de normaalvorm is: 1.dddddddddd.. x 2m; (iedere d is 0 of 1) Vb: 0.1875 = 1.5 x 2-3= 1.1 x 2-11 1.875 = 1.875 x 20 = 1.111 x 20 1875 = 1.8310546875 x 210= 1.11010110011 x 210 Normalisatiein het 2-tallige stelsel
Ieder (niet-geheel) binair getal in normaalvorm heeft de gedaante 1.dddddddddd.. x 2m; (iedere d is 0 of 1) • Enkele trucs bij de opslag van de getallen: • de 1 voor de punt wordt niet opgeslagen (is immers altijd 1) • de exponent m wordt voor opslag verhoogd met 127 • een opgeslagen exponenten < 127 zijn dus negatief • als de opgeslagen exponent 0 is, is het getal niet genormaliseerd • - de waarde is 0 als alle andere bits 0 zijn • - anders is het een speciaal geval De waarde 127 geldt voor 32 bits getallen (voor 64 bits geldt de waarde 1023) Binaire representatie vanniet-gehele getallen
Institute of Electrical and Electronics Engineers float 1 8-bits 23-bits tekenbit exponent mantisse 1 11-bits 52-bits double ANSI-IEEE 754-1985 floating point
1995.5 =1.94873046875 x 210 1995.5 = 1.11110010111 x 21010 exp = 10 + 127 = 137 = 10001001 0 1000100111110010111000000000000 Float representatie van 1995.5
Float representatie van 1995.5 .94873046875 – .5 (2-1) = .44873046875 – .25 (2-2) = .19873046875 – .125 (2-3) = .07373046875 – .0625 (2-4) = .01123046875 – .00781255 (2-7) = .00341796875 – .001952125 (2-9) = .00146484375 – .0009765625 (2-10) = .00048828125 – .00048828125 (2-11) = 0
5.8 = 1.45 x 22 = 1.011100110011… x 22 5.4 = 1.35 x 22 = 1.010110011001… x 22 5.8 – 5.4 = 0.000110011010… x 22 = 1.10011010… x 2-2 0.4 = 1.6 x 2-2= 1.10011001… x 2-2 Bij de conversie naar float treden afrondingsfouten op Bij een aftrekking kan zo’n afrondingsfout doorwerken Oorzaak spreedsheet-probleem
Opdrachten • Bestudeer de paragrafen 3.1 en 3.2 • Maak opgaven 3.1 t/m 3.5 (blz. 37)