EDA 451 - Digital och Datorteknik 2009/2010 Binär Kodning, lärobokens kap.2 Ur innehållet: Grundläggande binära koder Talomvandlingar Binär kodning
Vad betyder ettorna och nollorna? Binär kodning Begrepp Tal och talsystem ASCII-kod NBCD Excess-kod Flyttal Gray-kod Felupptäckande kod, paritet Vad betyder ettorna och nollorna? 1001101000111...1000101010111 Binär kodning
Begrepp vid binär kodning betydelse exempel... bit/bitar minsta informationsenhet, kan anta två värden 0 eller 1 bitsträng binärt ord sekvens av bitar 101100100001... kodord κ7 κ6 κ5 κ4 κ3 κ2 κ1 κ0 också ett binärt ord men med en fastställd kodning (betydelse) 1000001 = “A” (ASCII) 1000001 = 65 (naturligt tal) 1000001 = -63(heltal) ordlängd antal bitar i ordet nibble ordlängden 4 bitar 0101 byte ordlängden 8 bitar 01011100 Binär kodning
Positionssystem, 10-decimalt Ett N-bitars tal. N = n+m där n är antalet siffror i heltalsdelen och m är antalet siffror i bråkdelen skriver vi allmänt: Mest signifikanta siffra (MSD) Minst signifikanta siffra (LSD) Decimalpunkt Exempelvis, talet: Där N=6, n=m=3, varje siffras vikt avgörs av dess position i talet... Binär kodning
Positionssystem, generellt Talbasen kan dock vara praktiskt taget vad som helst... Exempel: =10 Exempel: =2 Vi använder vanligen det enklare skrivsättet Binär kodning
Talbaser Exempel: (13)10 = (1101)2=(D)16 decimalt bas 2 binärt bas 16 hexadecimalt 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Vi använder huvudsakligen tre olika talbaser: Decimalt, för att vi är vana vid det. Binärt, för att det motsvarar informationselementen i det digitala systemet. Hexadecimalt, därför att det är ett bekvämt sätt att skriva grupper av binära siffror Exempel: (13)10 = (1101)2=(D)16 Binär kodning
Talomvandlingar För talomvandling till basen 10 använder vi definitionen direkt... Exempel: Omvandla till decimal form: (110.111)2 (1A.8F)16 Lösning: (110.111)2 = {N=6, n=m=3, =2} = 1×22+ 1×21+ 0×20+ 1×2-1+ 1×2-2+ 1×2-3= 4 + 2 + 0+ 1/2+ 1/4 + 1/8 = 6 + 7/8 = (6,875)10 (1A.8F)16 = {N=4, n=m=2, =16} = 1×161+ 10×160+ 8×16-1+ 15×16-2 = 16 + 10 + 8/16 + 15/256 = 26 + 143/256 = (26,55859375)10 Kompendiet uppgift 2.1 e Kompendiet uppgift 2.3 c Binär kodning
Omvandling från N10 till N 1. Dela upp N10 i heltalsdel och bråktalsdel. 2. Heltalsdelen omvandlas via succesiva divisioner med . 3. Bråkdelen omvandlas via succesiva multiplikationer med . Exempel: Omvandla (122,18)10 till binär form. Bråkdelen avkortas vid behov till 7 korrekta bråksiffror. Kompendiet uppgift 2.6 c Binär kodning
1. Omvandla (122)10 till binär form 122/2 = 61 + 0/2 → d0 = 0 61/2 = 30 + 1/2 → d1 = 1 30/2 = 15 + 0/2 → d2 = 0 15/2 = 7 + 1/2 → d3 = 1 7/2 = 3 + 1/2 → d4 = 1 3/2 = 1 + 1/2 → d5 = 1 1/2 = + → d6 = 1 Terminerings-villkor Heltalsdelen således: (1111010)2 Binär kodning
2. Omvandla (0,18)10 till binär form × 2 = 0,36 → d-1= 0 0,36 × 2 = 0,72 → d-2= 0 0,72 × 2 = 1,44 → d-3= 1 Termineringsvillkor enligt uppgiftstexten 7 st. korrekta bråksiffror 0,44 × 2 = 0,88 → d-4= 0 0,88 × 2 = 1,76 → d-5= 1 0,76 × 2 = 1,52 → d-6= 1 0,52 × 2 = 1,04 → d-7= 1 Bråkdelen således: (0.0010111)2 Binär kodning
Omvandla till hexadecimal form Exempel: Omvandla (122,18)10 till hexadecimal form. Bråkdelen avkortas vid behov till 2 korrekta bråksiffror. Heltalsdelen: 122/16 = 7 + 10/16 → d0 = (10)10=(A)16 7/16 d1 = (7)10=(7)16 Bråkdelen: 0,18×16 = 2,88 → d-1 = (2)10=(2)16 0,88×16 14,08 d-2 = (14)10=(E)16 Svar: (122,18)10 7A.2E Binär kodning
Alfanumeriska tecken → ASCII American Standard Code for Information Interchange Typiskt användningsområde: Tangentbord Binär kodning
7-bitars ASCII kodning Binär kodning
ASCII– Exempel Textsträngen ”Hej” representeras som: 1001000 1100101 1101010 ’H’ ’e’ ’j’ Textsträngen ”9756” representeras som: 0111001 0110111 0110101 0110110 ’9’ ’7’ ’5’ ’6’ Binär kodning
NBCD – Natural Binary Coded Decimal decimal siffra NBCD kodord 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 4 bitars kodord Kodar decimala siffrorna 0-9 Binär kodning
NBCD – Exempel Decimala talet 9756 representeras som: 9756 = 1001 0111 0101 0110 9 7 5 6 Decimala talet 563,782 representeras som: 0101 0110 0011 , 0111 1000 0010 5 6 3 , 7 8 2 Kompendiet uppgift 2.13 Binär kodning
Excess–n kod Används för att koda bipolära storheter, exempelvis att representera ett spänningsintervall -10 V < analog signal < 10 Volt Men också som exponent i IEEE-flyttal (beskrivs nedan...) -2,5 -1,5 -0,5 0,5 1,5 2,5 - -2 -3 2 3 uppmätt analog signal kvantiserad signal 100 101 110 010 001 000 011 Excess-3 + Exempel Binär kodning
Gray kod Kodskiva – vanlig komponent i olika typer av vinkelgivare. Ljuskällor Detektorer I ”övergångarna”: Koder ändrar sig endast i en bit. Förhindrar tillfälliga felavläsningar. Binär kodning
Kodord i trebitars Graykod Kodord i fyrbitars Graykod Decimal ordning Kodord i trebitars Graykod Kodord i fyrbitars Graykod 000 0000 1 001 0001 2 011 0011 3 010 0010 4 110 0110 5 111 0111 6 101 0101 7 100 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 Gray-kod tillhör gruppen ”reflekterande koder” +Exempel Binär kodning
Felupptäckande kod - Paritetsbitar 000 0 001 1 010 1 011 0 100 1 101 0 1 Extra bit läggs till så att ordet alltid innehåller jämnt antal ettor (jämn paritet) Kontrollbit: 1 om udda antal ettor 0 annars paritetsbits- generering b 3 2 1 p paritets- kontroll c Exempel: Jämn paritetsmetod använd i samband med 3-bitars kod. Binär kodning
Exempel: Udda paritetsmetod använd i samband med 3-bitars kod. 000 1 001 0 010 0 011 1 100 0 101 1 1 Extra bit läggs till så att ordet alltid innehåller udda antal ettor (udda paritet) Kontrollbit: 1 om jämnt antal ettor 0 annars paritetsbits- generering b 3 2 1 p paritets- kontroll c Exempel: Udda paritetsmetod använd i samband med 3-bitars kod. 21 Binär kodning