Boolesk Algebra og det binære talsystem
Transcription
Boolesk Algebra og det binære talsystem
Boolesk Algebra og det binære talsystem - temahæfte informatik. I dette hæfte arbejdes der med to-tals systemet og logiske udtryk. Vi oplever at de almindelige regneregler også gælder her, og vi prøver at nedskrive simple apparaters opførsel vha. booleske udtryk. Normalt vil det tage 2-3 moduler (á 90 minutter) at gennemgå hele hæftet. 1.0 Opbygning af 2-talsystemet. ...........................................................................................................3 2.0 Konvertering fra ti-talsystem til to-talsystem..................................................................................3 2.3 Addition ...........................................................................................................................................5 2.5 Subtraktion ......................................................................................................................................6 2.6 Multiplikation ..................................................................................................................................6 3.0 Boolesk Algebra og gates. ...............................................................................................................7 3.1 OR gate ............................................................................................................................................8 3.2 AND gate.........................................................................................................................................8 3.3 NOT - Inverter .................................................................................................................................9 4.0 Opbygning af sandhedstabeller. ....................................................................................................12 5.0 Boolesk Algebra. Definitioner ......................................................................................................16 6.0 Booleske Regneregler. ..................................................................................................................18 6.3 De Morgans regel - ophævelse af Inverteringsbjælke ...................................................................19 7.0 Logiske skrivemåder .....................................................................................................................24 8.0 Karnaughkort .................................................................................................................................25 Oprindelse. I 1854 var der en engelsk matematiker og logiker ved navn George Boole (1815-1864) der lavede en algebraisk beskrivelse af logiske love - det der i dag kaldes Boolesk Algebra. George Boole var autodidakt (senere matematik professor ved Queens College i Irland) og det var diskussioner med filosoffer og logikere, der fik Boole i gang med at opstille de logiske regler. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 2 af 28 1.0 Opbygning af 2-talsystemet. Vi begynder med ti-talsystemet. Når man skriver 3146 i vores normale ti-talsystem betyder det, at der er seks enere, fire tiere, en hundrede og tre tusinder. Når vi lægger de individuelle tal sammen, giver det 3146. På skemaform kan det skrives på følgende vis: 1000 3 100 1 3000 + 100 10 4 + 40 1 6 + 6 = 3146 På tilsvarende måde gælder det i to-talsystemet. Vi tæller ikke fra 0 til 9, men fra 0 til 1. Et ciffer kan have værdien 1 eller 0. I ti-talsystemet kan et ciffer have værdien 0,1,2,3,4,5,6,7,8,9. I totalsystemet er der kun; 0, 1 - nul og en - falsk eller sandt - high eller low - lys eller mørke. Kun 0 og 1. Tallet 6 i ti-talsystemet skrives som 0110 i to-talsystemet. To-talsystemet kaldes også det binære talsystem. Tallet 3 i ti-talsystemet skrives som 0011 i det binære talsystem. 2.0 Konvertering fra ti-talsystem til to-talsystem Man konvertere et tal i 2-talsystemet til 10-talsystemet ved at indsætte 2-talsystemtallet i tabellen og lægge kolonneoverskrifterne sammen de steder der er "1" i cellen. Således bliver tallet 0000|0101 i 2-talsystemet til 5 i 10-talsystemet. 128 0 0 64 0 + 0 32 0 + 0 16 0 + 0 + 8 0 4 1 2 0 1 1 0 + 4 + 0 + 1 = 5 I 10-talsystemet hedder et enkelt tal, et ciffer. I 2-talsystemet kalder vi det et bit. Normalt arbejder man i 2-talsystemet med 8 bit ad gangen - det kaldes en byte. 1 G Byte er med andre ord 8 G Bit. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 3 af 28 2.1 Konverter følgende binære tal til 10-tal system 128 64 32 16 8 4 2 1 b) 1100 | 0110 128 64 32 16 8 4 2 1 c) 0000 | 0000 128 64 32 16 8 4 2 1 d) 1111 | 1110 128 64 32 16 8 4 2 1 a) 0000 | 0110 2.2 Konverter følgende decimaltal til 2-tal system a) 4 128 64 32 16 8 4 2 1 b) 17 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 c) 130 d) 61 128 64 32 16 8 4 2 1 b) 10 128 64 32 16 8 4 2 1 c) 254 128 64 32 16 8 4 2 1 Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 4 af 28 2.3 Addition To tal lægges sammen på gammeldags måde ved at stille dem over hinanden + = 0000 | 0001 0000 | 0100 0000 | 0101 altså 1 +4 =5 Læg følgende tal sammen og konverter til 10-tal system a) 0000 | 0110 + 0010 | 1000 + = b) 0100 | 0100 + 1010 | 1001 + = 2.4 Addition med "carry" (mente) Når vi lægger to store tal sammen på den gammeldags metode skubber vi en ti'er, hvis resultatet af to cifre bliver for stort. Man begynder altid bagfra: +1 +1 16251 16251 16251 16251 16251 16251 et tal flyttes + 56211 + 56211 + 56211 NB! + 56211 + 56211 + 56211 (mente) = 2 = 62 = 462 = 12462 = 2462 = 72462 a) Læg følgende tal sammen på den gammeldags metode. Begynd bagfra - tjek efterfølgende svaret med din lommeregner: 36569 + 55320 = 69568 + 46351 = 123586 + 680481 = Læg nu følgende 2-talsystems tal sammen - "med carry" b) 0001 | 0110 + 0010 | 0100 + = c) 0110 | 0110 + 1010 | 1011 + = Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 5 af 28 2.5 Subtraktion Det samme gælder når vi subtraherer (minusstykker). Vi starter bagfra og så "låner" vi nogle gange fra naboen. I totalssystemet får vi to når vi låner. 10 2729 - 1538 = 1 (altså vi lånte ti) 11 2729 - 1538 = 1191 (og her lånte vi to stk) 0000 | 1101 - 0000 | 0010 = 0000 | 1011 2.6 Multiplikation Multiplikation (gangestykker) forløber problemfrit i forhold til regnereglerne. At gange med 0 eller 1 er enkelt - det kender vi fra 10-talsystemet. 0000|0100 • 0000|0000 = 0 4 • 0 0000|0100 • 0000|0001 = 0000|0100 og =0 4 • 1 = 4 Skal man gange med 2, svarer det til at lægge det oprindelige tal sammen to gange. 0000|0100 • 0000|0010 = 0000|1000 4 + = • 2 0000 | 0100 0000 | 0100 0000 | 1000 = 8 altså 4 +4 =8 Hvis vi ganger med 3, så skal det oprindelige tal lægges sammen tre gange. I computeren udnytter man dette forhold. Hvis der skal gange med 2, så skifter man de enkelte bit én gang til venstre (left shift). Lidt ligesom vi flytter kommaet, når vi normalt ganger med 10. 0000|0100 0 0000|100 skiftet en gang til venstre bliver man sætter "0" ind på den nye plads så svaret bliver 0000 | 1000 Hvis man skal dele med 2, skifter man bare en gang til højre (right shift). Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 6 af 28 3.0 Boolesk Algebra og gates. Foruden de normale regneregler har man i to-talsystemet og så Booleske regneregler - Boolesk algebra. Disse regneregler er en stor hjælp når en computer skal arbejde. Boolesk algebra er logik-baseret. Man taler om "et udsagn". Et udsagn kan være sandt eller falsk. Sandt/rigtigt kan symboliseres ved lys i lampen på en sandhedsdetektor (ved løgn eller forkert svar, forbliver lampen slukket) Et falsk udsagn: Peter kan trække vejret under vandet. Et sandt udsagn: Peter kan drikke en cola. Et sandt udsagn er: 0000|0100 + 0000|0100 = 0000|1000 Sandt medfører lampen lyser Stærkt simplificeret kan man sige at det eneste en computer gør, er at kigge på en række udsagn (nogle input) og derefter udføre en ordre (output) der er afhængig af udsagnet. Den gør det bare en million gange i sekundet. Der er grundlæggende tre Booleske udtryk. Til hvert udtryk hører et symbol og en sandhedstabel. a) AND b) OR c) NOT Ken Mathiasen 26/8-2014 (også kaldet Inverter) Må gerne kopieres :) Side 7 af 28 3.1 OR gate Udgangen af en gate er enten 0 eller 1 (falsk eller sandt). Det er indgangsforholdene (kaldet A, B) der bestemmer hvad udgangen skal være. Udgangen kaldes Q. Udgangen, Q på en OR gate er altid 1 - på nær når begge indgange er 0. Med andre ord så er udgangen på en OR gate 1, når indgang A eller indgang B er 1 (på engelsk bliver det A or B). Hvis A = 1 og B = 0, bliver Q = 1: Det modsatte er også tilfældet. Hvis A = 0 og B = 1, så bliver Q = 1 (hvis A OR B er 1, bliver Q = 1). De forskellige kombinationer af A og B kan skrives op i en sandhedstabel. B 0 0 1 1 A 0 1 0 1 Q 0 1 1 1 Sandhedstabel for en OR gate 3.2 AND gate Tilsvarende haves en kombination, hvor både A og B skal være 1, før udgangen, Q også bliver 1. Så man kan sige at udgangen på en AND gate altid er 0, på nær når A og B = 1 (på engelsk bliver det A and B). Hvis A = 1 og B = 0, bliver Q = 0 (fordi både A og B skal være 1 før Q bliver 1): Modsat, hvis A = 0 og B = 1, forbliver Q = 0. De forskellige kombinationer af A og B kan skrives op i en sandhedstabel. B 0 0 1 1 A 0 1 0 1 Q 0 0 0 1 Sandhedstabel for en AND gate Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 8 af 28 3.3 NOT - Inverter Den sidste gate-type er en Inverter. En inverter inverterer - med andre ord så vender Inverteren indgangssignalet. Hvis indgangen er 1 bliver udgangen 0. Hvis indgang er 0, bliver udgangen 1. A 0 1 Q 1 0 Sandhedstabel for en Inverter Udgangen er det modsatte af indgangen. Så hvis A er 1, så er Q "not 1". _ NOT A kan også skrives som A. En bjælke over et udtryk betyder at det skal inverteres. _ A = 1 medfører at A = 0 Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 9 af 28 3.4 Opgaver - Sandhedstabeller vist med batterier, kontakter og pærer Kig på el-diagrammet. Når man trykker på en af knapperne (fx knappen SW 1), så lyser pæren. Hvis man trykker på den anden knap, SW 2 lyser pæren også. Hvis man trykker begge knapper samtidig, lyser pæren. Er ingen knapper trykkede, er der ingen lys. Man kan sammenligne kredsløbet med en gate og lave en sandhedstabel. Når man aktiverer en knap (når man trykker på den) svarer det til at indgang A på en gate, er 1. a) Prøv de forskellige knap kombinationer og skriv resultatet i tabellen B 0 0 1 1 A 0 1 0 1 Q . b) Hvilken gate opfører sig som det kredsløb der er vist herover? Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 10 af 28 3.5 Opgave - Herunder er et nyt kredsløb. Når man trykker på SW 1 sker der ingen ting (ingen lys) a) Hvordan får man lys i pæren. b) Hvilken gate har en tilsvarende opførsel? 3.6 Inverter kredsløbet laves med et relæ. Herunder er vist et kredsløb der simulerer en Inverters opførsel. Pæren lyser hele tiden - selvom knappen SW 1 ikke er trykket ned. Når man trykker på knappen aktiveres relæet og så svinger kontakten væk fra pæren (den kontakt der er inde i RLY2, lige over lampen). Det er lidt ligesom et skiftespor til et tog. Pæren mister forbindelsen og slukkes når relæet aktiveres. Med andre ord; når man trykker på knappen, slukkes lampen. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 11 af 28 4.0 Opbygning af sandhedstabeller. Her er to gate kombineret. Udgangen af en AND gate (kaldet P) er brugt som indgang på en Inverter. P Skal man lave en sandhedstabel, begynder man fra input (A, B) og bevæger sig mod output (Q). Først skrives AND gatens sandhedstabel op: B 0 0 1 1 A 0 1 0 1 P 0 0 0 1 Q 1 1 1 0 Bagefter tilføjes en kolonne Q, hvor man kigger på P og bruger P kolonnen som input til Inverteren. Kolonne Q er med andre ord blot det modsatte af P. Ovenstående sandhedstabel er meget anvendt. Den gælder en gate der hedder NAND gate (navnet er sammensat af "not" og "and" ) 4.1 Opgave - Lav en sandhedstabel for nedenstående kredsløb: P B 0 0 1 1 A 0 1 0 1 P Q Kredsløbet betegnes også NOR gate. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 12 af 28 4.2 Kompressorens virkemåde. En hobby kompressor fungerer ved, at den tænder en luftpumpe der fylder luft i en tank. Når trykket i tanken er 6 bar eller mere (input A 1), slukkes luftpumpen. Når trykket kommer under 6 bar tændes kompressoren igen. Lav en sandhedstabel for luftpumpen: Tryk 0 1 = Luftpumpe 4.3 Opgave - El-radiatorens virkemåde Hvis hovedafbryderen i el-skabet er tændt (input A), så fungerer en el-radiator ved at den tænder automatisk når temperaturen i stuen kommer under 20˚C. Når temperaturen kommer over 20˚C igen (giver "temperatur > 20˚C" = 1), slukkes radiatoren. Hvis hovedafbryderen i el-skabet er slukket (0), er el-radiatoren også slukket (0) , uanset hvad temperaturen i rummet er. a) Lav en sandhedstabel for hele kredsløbet; el-radiator og hovedafbryder. Temperatur > 20˚C 0 0 1 1 Ken Mathiasen 26/8-2014 Hovedafbryder 0 1 0 1 Radiator der varmer Må gerne kopieres :) Side 13 af 28 4.4 Opgave- Lav en sandhedstabel for nedenstående kredsløb: B A 0 1 0 1 P P B 0 0 1 1 Q 4,5 Opgave - Lav en sandhedstabel for nedenstående kredsløb: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 D E Ken Mathiasen 26/8-2014 Z Må gerne kopieres :) Side 14 af 28 4.6 Opgave - Lav en sandhedstabel for et køleskab der er tilsluttet en stikkontakt i væggen. Når temperaturen i et køleskab er over 5°C skal kompressoren tændes. Når temperaturen er under 5°C skal kompressoren slukkes - hvis altså stikkontakten er tændt. a) Bestem hvad der er A og B og Q. b) Lav en sandhedstabel for systemet. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 15 af 28 5.0 Boolesk Algebra. Definitioner Forskellige gates opfylder forskellige Booleske regneregler. 10 = 0 (det er en AND gate) 1 + 0 = 1 (det er en OR gate) 11=1 1+1 = 1 _ 0 = 1 (stegen over 0 læses som "0 negeret") _ 1 = 0 "0 negeret" kan også siges som "ikke 0". På samme måde kan "1 negeret" siges som "ikke 1." 5.1 Opgave - Udregn følgende Booleske udtryk: a) 0 1 = b) 1 1 = c) 1 1 = d) 0 + 1 = _ e) 1 0 = f) ( 1 0 ) + ( 1 1) = ______ g) (1 0 ) + (1 1 ) = h) i) j) (01)+(11)+(00)= _ ( 1 + 0 ) 0 + 0 + (1 1 1) = _ ______ 1 1 + 0 ) + 1 + (1 + 1 ) = 5.2 Opgave - Logiske opgaver fra hverdagen a) Lav et gate kresløb der blokerer lågen i en vaskemaskine, hvis der er vand i vaskemaskinen og man prøver at åbne lågen. Kredsløbet skal også blokere lågen hvis tromlen kører. Beskriv kredsløbet med Booleske udtryk. b) Lav et lille gate kredsløb der tænder for lyset i en carport hvis der er bevægelse foran en bevægelsessensor. Kredsløbet skal kun virke når der er mørkt (måles med en lyssensor). Beskriv kredsløbet med Booleske udtryk og tegn kredsløbet med gates. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 16 af 28 5.3 Brug Boolesk regneregler på følgende udtryk ("" angiver OR. "" angiver AND) a) 0000 | 0110 + 0010 | 1000 + = b) 0110 | 1100 + 1010 | 1001 + = c) 0001 | 0110 + 0010 | 0100 + = d) 0110 | 0110 1010 | 1011 = e) 0001 | 0110 0010 | 0100 = f) 1100 | 0110 1010 | 0000 = 5.4 Opgave - Logiske opgaver fra hverdagen a) Et netstik til en stuelampe stikkes i væggen i en stikkontakt. Når man tænder og slukker på stikkontakten i væggen tænder og slukker lampen. MEN på ledningen er der monteret en afbryder. Når ledningsafbryderen er tændt, fungerer stikkontaktkontakten normalt. Hvis ledningsafbryderen er slukket kan lampen ikke tændes. Lav et lille gatekredsløb der opfører sig på tilsvarende måde. Beskriv kredsløbet med Booleske udtryk og tegn kredsløbet med gates. b) Lav et lille gate kredsløb der giver alarm, hvis lygterne i en gammel bil er tændt, selvom der ikke er tænding på (altså beep-beep, hvis man glemmer at slukke lyset når man har kørt en tur). Kredsløbet skal også give alarm, når der er tænding på, men med samtidig slukkede lygter (altså også en beep-beep, når man kører en tur med slukkede lygter). Beskriv kredsløbet med Booleske udtryk. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 17 af 28 6.0 Booleske Regneregler. Rækkefølgen. Når man regner med booleske udtryk løser man parenteserne først (ligesom vi plejer lidt som en mellemregning) ( 1 0 ) + ( 1 1) = 0 + 1 efterfølgende løser man udtrykket 0 + 1 = 1 Vis at følgende udtryk giver 1: a) (11) + ( 0 1) = b) c) ( 0 0 ) + ( 0 1) + ( 1 1 ) = _ ( 1 0 ) ( 1 1) = d) (1+0) + (0 0) + 1= 6.1 AND () "binder" mere end OR (+). Vi begynder med at udregne AND () først, og bagefter udregner vi OR (+). Det kender vi fra den normale matematik, hvor vi udregner gange og division, før vi lægger tallene sammen. Normalt udregnes 210+43 ved at man først siger 2 10 = 20 og 4 3 = 12. Når det er gjort, lægger vi tallene sammen. 20 + 12 = 32. Så 210+43 = 32. I Boolesk algebra kan det se således ud: 1 0 + 1 1 udregnes ved først at sige 1 0 = 0 og 1 1 = 1. Når det er gjort, OR'es de to tal sammen. 0 + 1 = 1. Med andre ord så er 1 0 + 1 1 = 1. Vis at følgende udtryk giver 1: a) 01 + 1 1 = b) 1 1 + 0 = _ c) 1 1 + 0 1 + 1 0 + 1 + 0 = _ ______ d) ( 1 0 ) + 0 + ( 0 1) + 1 + ( 1 1 ) = Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 18 af 28 6.2 Inverteringsbjælken fungerer som en parentes. Det bjælken dækker, skal inverteres (det der står i ly af bjælken hvis det regner, skal vendes om). _ _ 0 bliver til 1. Ligesom 1 bliver til 0 _____ __ (1 + 1) bliver til (1) altså 0. ____ __ _ _ 1 + 1 1 + 0. Først løses det der står under bjælken - ligesom parenteser (dvs 11 = 1): 1 + 1 + 0 _ Herefter fjerner vi bjælken (1 bliver til 0): 1 + 0 + 0 og nu kan udregningen laves 1 + 0 + 0 = 1 6.3 De Morgans regel - ophævelse af Inverteringsbjælke En Inverteringsbjælke der dækker to pladser, kan fjernes ved at den "falder ned". De fortegn den dækker (de fortegn stumperne fra bjælken rammer, når den falder ned) skal ændres. ____ _ _ 1 + 1 1 + 0 = 1 + 1 + 1 + 0 (så nu er bjælken delt i to og fortegnet under den er skiftet) ____ _ _ 11+0+1 = 11+ 0 1 To bjælker går ud med hinanden: 0+1 =0+1 1 + 1 + 0 først lader man bjælken falde ned: 1 1 + 0 så udregning: 1 1 + 0. 1 0 + 0 = 0 Vis at følgende udtryk kan reduceres ned til 0 a) 1 + 0 = _ ____ b) (0 + 1) + 0 + 1 1 = c) d) (1 + 0 ) 0 + 1 + (1 1 1) + 0= 10 1 + 0 + (1 + 0) = Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 19 af 28 I Boolesk algebra anvender man A, B, C osv. for de forskellige indgange når man tegner gates. Hver indgang kan være 1 eller 0. Skriver man regnereglerne op med bogstaver (ligesom vi normalt bruger bogstaver i formlerne), kommer den første regel til at se således ud: _____ __ __ _____ __ __ 1 + 0 = 1 0 med bogstaber bliver det til A + B = A B Herefter kan man tegne udtrykket med gates og lave en sandhedstabel til: A P A A Q Q B B B B 0 0 1 1 A 0 1 0 1 P 0 1 1 1 Q 1 0 0 0 _____ A+B = _ _ A B B 0 0 1 1 A 0 1 0 1 B 1 1 0 0 A 1 0 1 0 Q 1 0 0 0 B 0 0 1 1 A 0 1 0 1 B A Q De to kredsløb er altså ens - set med logiske øjne 6.4 Opgave a) Tegn de to Boelske udtryk med gates _____ __ __ A B = A + B b) Lav de tilsvarende sandhedstabeller: B 0 0 1 1 A 0 1 0 1 P Q Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 20 af 28 6.5 Opgave En anden Boolesk regel er at: A + AB = A. a) Tegn udtrykket "A + AB" med gates b) Lav en sandhedstabel for de to udtryk B 0 0 1 1 A 0 1 0 1 P Q A 0 1 Q c) Tegn derefter sandhedstabellen for A = A 6.6 Opgave __ a) Opskriv sandhedstabellen for følgende udtryk: Q = C (B + A) __ C B A C (B+A) Q 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 b) Tegn kredsløbet med gates Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 21 af 28 6.7 Opgave __ a) Opskriv sandhedstabellen for følgende udtryk: Q = B + (C A) __ _ C B A A (CA) Q 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 b) Tegn kredsløbet 6.8 Opgave Opstil det Booleske udtryk bag følgende kredsløb og lav den tilhørende sandhedstabel: A A+B Q B __ C C Ken Mathiasen 26/8-2014 Må gerne kopieres :) C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 C (A+B) Q Side 22 af 28 6.9 Opgave Opstil det Booleske udtryk bag følgende kredsløb og lav den tilhørende sandhedstabel: A C 0 0 0 0 1 1 1 1 B C Ken Mathiasen 26/8-2014 Må gerne kopieres :) B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 Q Side 23 af 28 7.0 Logiske skrivemåder Først et par regneregler - er man i tvivl kan man altid teste en regel med en sandhedstabel: _____ __ __ 1) En Inverteringsbjælken kan falde ned og ændre fortegn: A+B = A B 2) Optræder en variabel alene (OR) kan de andre variable slettes A + AB = A 3) En operator OR'ed med sig selv, giver det oprindelige A+A = A 4) En operator AND'ed med sig selv, giver det oprindelige AA = A 5) Man kan gange (AND) ind i en parentes: A (B + C) = AB + AC 6) Man kan OR en parameter ind i en parentes: A + (BC) = (A+B)(A+C) Eksempel på reduktionsstykke: Q = A (B + C) + AC vi AND'er parentesen ud (regel 5): AB + AC + AC Q = AB + AC + AC så samler vi de to ens operatorer (regel 3): AB + AC Q = AB + AC så sætter vi A uden for en parentes (regel 5): Q = A(B+C) Tegner man opgaven, ser det således ud. Det der kommer igennem de to kredsløb er det samme: A B C A(B+C) B+C AC A B C A(B+C) B+C 7.1 Opgave - Reducer følgende udtryk: __ a) Q = A + B _____ b) Q = B + A B __ c) Q = (A B) + C D + A __ d) Q = ( A B ) + ( A C ) (her begynder man med at sættes A udenfor en parentes) _ _ _ _ e) Q = ABC + ABC + ABC + ABC ___ _ _ f) Q = ABC + ABC + ABC + ABC Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 24 af 28 8.0 Karnaughkort Logiske reduktionsopgaver kan løses grafisk med Karnaughkort. Sandhedstabellen skrives op og indsættes i derefter en matrice. Det er ofte nemmere end at foretage udregningen. _ _ _ _ Eksempel på reduktion af: Q = ABC + ABC + ABC + ABC C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 Q 0 0 1 1 0 1 0 1 Hver celle repræsenterer Q i en linje af sandhedstabellen 0 1 BA 00 0 0 BA 01 0 1 BA 11 1 1 BA 10 1 0 0 1 BA 00 0 0 BA 01 0 1 BA 11 1 1 BA 10 1 0 BA 01 0 1 BA 11 1 1 BA 10 1 0 Karnaughkort for C C Nu samles (grupperes) alle "1" i Karnaughkortet. Karnaughkort for C C Det ses at når C = 0 er det lige meget hvad "A" er i BA, bare B = 1. Så første led i løsningen er at Q = CB + ... Næste gruppe med "1" findes: Karnaughkort for C C 0 1 BA 00 0 0 Det ses at når C = 1 er det lige meget hvad "B" er i BA, når bare A = 1. Så andet led i løsningen er at Q = CB + CA Nu kan der ikke laves flere sløjfer - vi er færdige. Så svaret er Q = CB + CA Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 25 af 28 8.1 Karnaughkort regler Ved brug af Karnaughkort skal man altid lave de største sløjfer først. Sløjferne skal være rektangulære eller kvadratiske. Alle ettaller skal sløjfes. Samme ettal må gerne indgå i flere sløjfer. 8.2.a) Reducer følgende udtryk med Karnaughkort: C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 Q 0 0 1 1 0 0 1 1 _ _ _ _ Q = ABC + ABC + ABC + ABC BA 00 Karnaughkort for C C BA 01 BA 11 BA 10 0 1 _ _ _ __ _ 8.2.b) Reducer følgende udtryk med Karnaughkort: Q = ABC + ABC + ABC + ABC C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 Q 0 0 1 1 1 1 0 0 BA 00 Karnaughkort for C C BA 01 BA 11 BA 10 0 1 ____ __ _ 8.2.c) Reducer følgende udtryk med Karnaughkort: Q = ABC + ABC + ABC + ABC C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 Q Ken Mathiasen 26/8-2014 BA 00 Karnaughkort for C C BA 01 BA 11 BA 10 0 1 Må gerne kopieres :) Side 26 af 28 ___ _ _ 8.2.d) Reducer følgende udtryk med Karnaughkort: Q = ABC + ABC + ABC + ABC C 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 Q BA 00 Karnaughkort for C C 0 1 BA 01 1 1 BA 11 1 1 BA 10 Her er et værktøj der kan hjælpe med reduktionsstykkerne: http://www.softpedia.com/get/Others/Home-Education/KarnaughMap.shtml ......there are only 010 kind of people: Those who understand binary and those who don’t. Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 27 af 28 OR gate B 0 0 1 1 A 0 1 0 1 Q 0 1 1 1 1 + 0 = 1 (det er en OR gate). 1 + 1 = 1, 0+0 = 0 AND gate B 0 0 1 1 A 0 1 0 1 Q 0 0 0 1 10 = 0 (det er en AND gate). 1 1 = 1 , 00 =0 Inverter (NOT gate) A 0 1 Q 1 0 _ 0 = 1 (stegen over 0 læses som "0 negeret") _ 1 = 0 Boolesk Algebra (digital), regneregler 1) En Inverteringsbjælken kan falde ned og ændre fortegn: 2) Optræder en variabel alene (OR) kan de andre variable slettes 3) En operator OR'ed med sig selv, giver det oprindelige 4) En operator AND'ed med sig selv, giver det oprindelige 5) Man kan gange (AND) ind i en parentes: 6) Man kan OR en parameter ind i en parentes: _____ A+B A + AB A+A AA A (B + C) A + (BC) __ __ = A B = A = A = A = AB + AC = (A+B)(A+C) Dette kompendium er udarbejdet af adjunkt ved Sønderborg Statsskole, Ken Mathiasen (cand IT). Kopiering og af kompendiet må gerne finde sted, men husk at bibeholde navnereferencen :) Ken Mathiasen 26/8-2014 Må gerne kopieres :) Side 28 af 28