1 / 35

EDA 451 - Digital och Datorteknik 2008/09 Dagens föreläsning: ”Aritmetik”, lärobok kapitel 6

EDA 451 - Digital och Datorteknik 2008/09 Dagens föreläsning: ”Aritmetik”, lärobok kapitel 6 Ur innehållet: hur man adderar och subtraherar tal i det binära talsystemet hur man kan koda om negativa binära tal, genom s k 2-komplementering, så att tecknet blir en del av talet

virgo
Télécharger la présentation

EDA 451 - Digital och Datorteknik 2008/09 Dagens föreläsning: ”Aritmetik”, lärobok kapitel 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. EDA 451 - Digital och Datorteknik • 2008/09 • Dagens föreläsning: • ”Aritmetik”, lärobok kapitel 6 • Ur innehållet: • hur man adderar och subtraherar tal i det binära talsystemet • hur man kan koda om negativa binära tal, genom s k 2-komplementering, så att tecknet blir en del av talet • hur addition och subtraktion kan utföras när talen kodats på 2-komplementsform Datoraritmetik

  2. Binär addition – ”papper och penna metod” Exempel:(5)10 + (23)10 = ? minnessiffror 1 1 1 (5)10 1 0 1 augend (23)10 addend 1 0 1 1 1 + summa (28)10 1 1 1 0 0 Datoraritmetik

  3. Binär multiplikation – ”papper och penna metod” Exempel: (25)10 × (11)10 =? (25)10 11001 multiplikand (11)10 × 1011 multiplikator 11001 1 0 1 1 11001 11001 00000 + 11001 (275)10100010011 produkt Datoraritmetik

  4. Binär subtraktion – ”papper och penna metod” Exempel:(110)10 - (43)10 = ? minnessiffror 10 10 (110)10 1 1 0 1 1 1 0 minuend (43)10 subtrahend 1 0 1 0 1 1 - skillnad (67)10 1 0 0 0 0 1 1 Datoraritmetik

  5. Binär division – ”papper och penna metod” Exempel:(33)10 : (6)10 = ? kvot 0 1 0 1 divisor dividend 110 1 0 1 0 0 0 - 000 1000 (100001)2:(110)2 = (0101)2 + (011)2:(110)2 - 110 0100 - 000 1001 - 110 rest 011 Datoraritmetik

  6. Addition av BCD-tal Exempel: Utför additionen 5+7 där talen är kodade på NBCD-form. Resultatet alltså (0001 0010)NBCD = (12)10. Datoraritmetik

  7. Vanliga binära ordlängder b3 b0 Nybble – 4 bitar b7 b0 Byte – 8 bitar b15 b0 Word – 16 bitar b31 b0 Long – 32 bitar Datoraritmetik

  8. Talområden vid NBC Datoraritmetik

  9. 8-bitars addition 8 bitar ger talområdet 0..28-1 = 0..255 1 00000101 + 00000110 5 + 6 11 00001011 1 1 1 1 1 1 11111110 + 00000101 254 + 5 259 100000011 Spill ! (”Overflow”) 00000011 Minnessiffran, genererad från additionen av de mest signifikanta bitarna är en spillindikator. Vi kallar den ”Carry” Datoraritmetik

  10. Geometrisk tolkning - tallinje 5 6 0 11 255 3 254 5 Datoraritmetik

  11. 8-bitars subtraktion 1 11111110 - 00000101 254 - 5 249 11111001 För att kunna utföra subtraktionen tvingas vi låna av en tänkt siffra med vikt 28. Spill ! (”Underflow”) 1 10 10 10 10 10 10 00000101 - 00000110 5 - 6 255 11111111 Den tänkta ”lånebiten” kallar vi ”Borrow”, en spillindikator. Datoraritmetik

  12. Geometrisk tolkning - tallinje 3 254 0 255 249 5 255 6 Datoraritmetik

  13. Grafisk representation av NBC tal talvärde MAX 0 bitmönster Spillfenomenet är oberoende av varje icke-oändlig ordlängd…. 00… 111… (max) Datoraritmetik

  14. Tal med tecken, Tecken/beloppsform +/-|X|, n-bitars tal: xn-1 xn-2 ............... x0 belopp 0: X≥0 1: X<0 Exempel: 8-bitars tal +/- 19: +19 0 0 0 1 0 0 1 1 -19 1 0 0 1 0 0 1 1 Datoraritmetik

  15. Talvärden vid tecken-belopp form Tolkning av talvärdet N för ett n-bitars tal: Datoraritmetik

  16. Grafisk representation av tecken-belopps tal talvärde MAX 0 bitmönster 000… 111… (max) 011… 100… MIN Den assymetriska avbildningen av talvärdet från bitmönstret antyder att aritmetiska operationer kan bli komplicerade… Datoraritmetik

  17. Tecken/beloppsform – räkneregler för addition En addition kan resultera i en subtraktion. Dessutom tillkommer teckenöverläggning för resultatet. Av tabellen framgår att ett kombinatoriskt nät för addition av tecken/belopps-tal blir komplicerat. Datoraritmetik

  18. Viktigt för Arbetsbok, kap. 6 Tal med tecken - Tvåkomplementsform +/-|X|, N-bitars tal: xN-1 xN-2 ............... x0 |X| om XN-1 = 0 2N-|X| om XN-1 = 1 0: X≥0 1: X<0 Exempel: 8-bitars tal +/- 19: +19 0 0 0 1 0 0 1 1 -19=[256-19=237] 1 1 1 0 1 1 0 1 Datoraritmetik

  19. Tvåkomplementsform - Metod för teckenbyte X+Y = 2n Y är 2-komplementet till X (n-bitars tal) För 8-bitars tal således: Y = X2k = 28 – X = = (28-1) – X + 1 = 11111111 – x7x6x5x4x3x2x1x0 + 1 Detta kallas 1-komplement (X1k). Bitvis invertering Datoraritmetik

  20. Exempel: Bestäm maskintalet på 8 bitars tvåkomplementsform för decimala talet -50 Vi utgår enklast från X=50 (och söker X2k) (50)10= X = 00110010 X1k = 11001101 + 1 - (50)10 = X2k = 11001110 Datoraritmetik

  21. Tvåkomplementsform - addition Dvs. Oavsett vilka tecken de ingående talen har så fungerar rättfram binär addition. Datoraritmetik

  22. Tvåkomplementsform - subtraktion Vi inser också att en subtraktion kan utföras med hjälp av en adderare ty A-B = A+(-B) och –B=B2k= B1k+1 Exempel: 6–5=6+(-5)=00000110+ 11111001+ 1 (5)10= (00000101)2 Dvs 1-komplement: (11111010)1k 1 1 1 1 1 1 1 1 00000110 + 11111010 00000001 Datoraritmetik

  23. Exempel: 4-bitars addition av (0010)2 och (0011)2 Bitmönstren tolkade Bitmönster Bitmönstren tolkade som tal utan tecken som tal med tecken 1 2 0010 2 + 3+ 0011+ 3 = 5 = 0101 = 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 NBC (Tal utan tecken) Tvåkomplementrepresentation (tal med tecken) -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 Datoraritmetik

  24. Exempel: 4-bitars addition av (0110)2 och (0101)2 Bitmönstren tolkade Bitmönster Bitmönstren tolkade som tal utan tecken som tal med tecken 1 6 0110 6 + 5+ 0101+ 5 =11 = 1011 =-5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 NBC (Tal utan tecken) Tvåkomplementrepresentation (tal med tecken) -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 (-8) Datoraritmetik

  25. Exempel: 4-bitars addition av (0101)2 och (1101)2 Bitmönstren tolkade Bitmönster Bitmönstren tolkade som tal utan tecken som tal med tecken 111 5 0101 5 +13+1101+-3 = 2 =0010 = 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (0) NBC (Tal utan tecken) Tvåkomplementrepresentation (tal med tecken) -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 Datoraritmetik

  26. Exempel: 4-bitars addition av (1000)2 och (1100)2 Bitmönstren tolkade Bitmönster Bitmönstren tolkade som tal utan tecken som tal med tecken 1 8 1000 -8 + 12+ 1100+ -4 = 4 = 0100 = 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (0) NBC (Tal utan tecken) Tvåkomplementrepresentation (tal med tecken) -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 Datoraritmetik

  27. Tvåkomplementsform - talområde 0 Exempel: 8-bitars tal 127 -128 0 Datoraritmetik

  28. Tvåkomplementsform - spillindikatorer A + B där A≥0 och B<0 B A -128 0 127 max A max B Slutsats: Om A och B har olika tecken vid addition kan 2-komplementspill inte uppträda Datoraritmetik

  29. A + B = S, där A≥0 och B ≥ 0 A B 0 127 S -128 S B A Slutsats: Om A och B har samma tecken vid addition kan 2-komplementspill uppträda. Vi kan konstatera spill genom en teckenöverläggning, dvs: spill = (A≥0) (B≥0) (S<0) Datoraritmetik

  30. A + B = S, där A<0 och B < 0 B A 0 127 S -128 S B A I detta fall kan vi skriva spillvillkoret: spill = (A<0) (B<0) (S ≥ 0) Datoraritmetik

  31. Komplementformer och moduloaritmetik Generell definition: X+Xk= n Xk = (n-1) –X + 1 Modulo(n)-aritmetik, talintervall 0.. n-1 Exempel: 2-komplement, 8-bitars tal X+X2k= 28 X2k = (28-1) –X + 1 Modulo(256)-aritmetik, talintervall 0..255 Datoraritmetik

  32. Talvärde vid tvåkomplementsform Datoraritmetik

  33. Grafisk representation av tvåkomplementsform talvärde MAX 0 bitmönster 000… 011… 100… 111… (max) MIN Talvärdets avbildning är kontinuerlig bortsett från punkten 0, dvs, där talet (definitionsmässigt) byter tecken Datoraritmetik

  34. Vi sammanfattar reglerna för flaggsättning vid addition av två n-bitars tal, • R = X + Y, • där index 0 betecknar den minst signifikanta biten och följaktligen index n-1 betecknar den mest signifikanta biten: Datoraritmetik

  35. Vi sammanfattar • Tvåkomplementsform är lämplig representation för binära negativa heltal. • Subtraktion utförs som addition av tvåkomplement • Spillindikator vid addition av naturliga tal [0...N] • ”Carry” = cn • Spillindikator vid subtraktion av naturliga tal [0...N] • ”Borrow” (= cn’ då operationen utförs som addition) • Spillindikator vid addition/subtraktion av n-bitars heltal [-M..N] med tvåkomplementsrepresentation: • ”Overflow” = sn-1’ xn-1 yn-1+ sn-1 xn-1’ yn-1’ Datoraritmetik

More Related