(Tal)repræsentation Jens Bennedsen
hukommelsescelle
Så hvad har vi her?
Fortolkning og repræsentation ,
Hvad tal hvis vi fortolker binært?
Syn på lageret Lageret indeholder bits Fortolkningen af dem defineres (typisk) i et program
Standard fortolkninger af bits ASCII 01000001: ’A’ 01100001: ’a’ Tal Positive heltal: som bitmønster Negative heltal: sign-bit eller to-komplement Musik Mp3, Wav (cd), … MIDI Instrumentnavn, tone, længde Encodning af noder Billeder Jpg, gif, …
sidemandsopgave Find en ASCII tabel på nettet
Binær, oktal, decimal, hexadecimal, ... Fortolkning: Ciffer i har vægt bi, hvor b er 2, 8, 10, 16 eller andet grundtal
Sidemandsopgave
Fra decimal værdi til binær repræsentation
Positive heltal Repræsenteres direkte Eksempel: 8-bit 47: Sidemandsopgave: repræsenter 12710, 25510,1310, 31710 som 8-bit 1
Positive heltal Addition: Som vi kender det 47: + 53: 100 Sidemandsopgave: Udregn 12710 +1310 samt 1310 + 25510 (8 bit tal) 1 1 1 1 1 1 1 1 1 SysArk, E11
Addition af bitmønstre Hvordan finder vi et bitmønster U så |U| = |A| + |B| ? |B| betyder tal-værdien af bitsekvensen B Vi bruger ”standard” regnemåden (positionssystemet)
Hvornår giver det et rigtigt resultat? Uendeligt mange værdier: altid Endeligt mange værdier? ALU = Aritmetisk logisk enhed, den del som regner i en CPU Mente
Addition af ikke negative heltal Carry (C) – eller mente på dansk
Tal-linien 1 2 3 15 16 31 00000 00001 00010 00011 01111 10000 11111
Tal-cirklen 31 1 30 2 29 3 28 00000 11111 00001 4 11110 27 5 26 6 25 00111 7 24 01000 8 23 9 22 10 21 11 20 01111 10000 12 13 19 14 18 17 15 16
Addition(1) 31 1 00101 5 10001 17 30 2 29 3 28 00000 11111 00001 4 11110 27 10110 22 5 26 6 25 00111 7 24 01000 8 23 9 10110 22 10 21 11 20 01111 10000 12 13 19 14 18 17 15 16
Addition(2) 31 1 01011 11 10110 22 30 2 29 3 28 00000 11111 00001 4 11110 27 100001 1 5 26 6 25 00111 7 24 01000 8 23 9 10110 22 10 21 11 20 01111 10000 12 13 19 14 18 17 15 16
Sidemandsopgave Udregn følgende additionsstykker med 5 bit tal repræsentation og fortolkning som positive tal – tegn dem også på talcirklen 00011 3 10111 23 10000 16 10000 16 01111 15 10000 16 00000 0 00000 0
Negative heltal Negative tal? Sign bit 2-komplement 1: Neg 0:Pos Hvad med addition af to tal? 2-komplement 1: Neg 0:Pos Forklaring: http://langconv.com/lc/lctopic/twos_compl.php
Definition af 2-komplement Hvordan bestemmes et bit-mønster W med 8-bit så |U|2 = -27 (|U|2 betyder værdien fortolket som to- komplement) Definition af to-komplement med n-bit: -27 = |W|-2n dvs med 8 bit -27 = |W|-256, |W|=229 Dvs W = 11100101
Sidemandsopgave - 1 +1 - 47 132 - 19 - 132 128 - 128 Find to-komplement 8 bit-mønsteret for følgende tal: - 1 +1 - 47 132 - 19 - 132 128 - 128
Tal-linien – 2-komplement 1 2 3 15 -16 -1 00000 00001 00010 00011 01111 10000 11111 Her er tale om en anden FORTOLKNING af bitmønstre
Tal-cirklen -1 1 -2 2 -3 3 -4 00000 11111 00001 4 11110 -5 5 -6 6 -7 00111 7 -8 01000 8 -9 9 -10 10 -11 11 -12 10001 01111 10000 12 13 -13 14 -14 -15 15 -16
Addition af 2-komplement Ligesom ”traditionel” addition (dvs positionsvis): 00011 3 + 10111 -9 11010 -6 00100 4 + 01000 8 01100 12 01111 15 + 10000 -16 11111 -1 01000 8 + 01000 8 10000 -16
Addition 2-komplement (1) -1 1 00011 3 00110 6 -2 2 -3 3 -4 00000 11111 00001 4 11110 -5 01001 9 5 -6 6 -7 00111 7 -8 01000 8 -9 9 -10 10 -11 11 -12 10001 01111 10000 12 13 -13 14 -14 -15 15 -16
Addition 2-komplement (2) -1 1 00101 5 01010 10 -2 2 -3 3 -4 00000 11111 00001 4 11110 -5 01111 15 5 -6 6 -7 00111 7 -8 01000 8 -9 9 -10 10 -11 11 -12 10001 01111 10000 12 13 -13 14 -14 -15 15 -16
Addition 2-komplement (3) -1 1 00101 5 11010 -6 -2 2 -3 3 -4 00000 11111 00001 4 11110 -5 11111 -1 5 -6 6 -7 00111 7 -8 01000 8 -9 9 -10 10 -11 11 -12 10001 01111 10000 12 13 -13 14 -14 -15 15 -16
Addition 2-komplement (4) -1 1 01001 9 01010 10 -2 2 -3 3 -4 00000 11111 00001 4 11110 -5 10011 -13 5 -6 6 -7 00111 7 -8 01000 8 -9 9 -10 10 -11 11 -12 10001 01111 10000 12 13 -13 Overløb! 14 -14 -15 15 -16
Addition 2-komplement (3) -1 1 10101 -11 11010 -6 -2 2 -3 3 -4 00000 11111 00001 4 11110 -5 101111 15 5 -6 6 -7 00111 7 -8 01000 8 -9 9 -10 10 -11 11 -12 10001 01111 10000 12 13 -13 Overløb! 14 -14 -15 15 -16
Konklusion Negativt + negativt giver positivt: Overløb Positivt + positivt giver negativt: Overløb Ellers ok!