to get the file
Transkrypt
to get the file
Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Barbara Łukawska, Adam Krechowicz, Tomasz Michno Ćwiczenie nr 3: Algebra Boole'a Algebra Boole'a jest działem matematyki wykorzystywanym w wielu dziedzinach takich jak informatyka czy elektronika. Pozwala na tworzenie systemów wnioskowania i jest podstawą wszelkich obliczeń realizowanych przez komputery. Algebra ta składa się z trzech podstawowych operacji realizowanych na liczbach binarnych: AND (iloczyn logiczny), OR (suma logiczna) oraz NOT (negacja). Operacja iloczynu logicznego (AND) jest operacją dwuargumentową i działa na dwóch pojedynczych bitach. Operacja działa w następujący sposób dla poszczególnych przypadków: 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 Z powyŜszej listy wynika, Ŝe wynikiem operacji AND jest 1 tylko wtedy gdy oba argumenty są równe 1. Operacja sumy logicznej (OR) podobnie jak iloczyn logiczny jest operacją dwuargumentową. Operacja działa w następujący sposób: 1. 0 OR 0 = 0 2. 0 OR 1 = 1 3. 1 OR 0 = 1 4. 1 OR 1 = 1 Z powyŜszej listy wynika, Ŝe wynikiem operacji OR jest 1 jeśli przynajmniej jeden argument jest równy 1. Ostatnią podstawową operacją jest negacja (NOT). W przeciwieństwie do pozostałych operacji jest to operacja działająca na jednym argumencie. Operacja działa w następujący sposób: • NOT 0 = 1 • NOT 1 = 0 Z powyŜszej listy wynika, Ŝe operacja zwraca zawsze wartość przeciwną. Projekt ,,Absolwent Politechniki Świętokrzyskiej – inŜynier na miarę potrzeb współczesnej gospodarki’’ Program Operacyjny Kapitał Ludzki Priorytet IV Działanie 4.1, Poddziałanie 4.1.2 umowa UDA – POKL.04.01.02-00-213/12-00 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Równie często wykorzystywana jest operacja alternatywy wykluczającej (XOR): • 0 XOR 0 = 0 • 0 XOR 1 = 1 • 1 XOR 0 = 1 • 1 XOR 1 = 0 Z powyŜszej listy wynika, Ŝe operacja XOR zwraca 1 w przypadku gdy oba argumenty są róŜne. Pomimo, Ŝe przedstawione wyŜej operacje działają na pojedynczych bitach moŜna je stosować takŜe dla ciągów cyfr binarnych. W przypadku ciągów liczb wykonujemy operacje na niezaleŜnie na poszczególnych bitach. Dla przykładu wykonując operacje b0101 AND b0011 obliczamy kolejno: 1 AND 1, 0 AND 1, 1 AND 0, 0 AND 0: 0101 0011 AND = 0001 Analogicznie wykonywana jest operacja OR. W przypadku operacji NOT wszystkie bity negowane są niezaleŜnie. Np. NOT b0101 = b1010. Działania wykonywane są od lewej do prawej i wykonywana z następującym priorytetem: • działania w nawiasach • NOT • AND • OR Operacje logiczne w połączeniu z przesunięciami bitowymi mogą być wykorzystane do zmiany wartości określonego bitu w liczbie. Np. chcąc ustawić w liczbie b0111 czwarty bit na wartość jeden naleŜy wykonać operację OR na tej liczbie oraz na liczbie 1 przesuniętej o 3 pozycje w lewo. 1 << 3 = 1000 0111 OR 1000 = 1111 W ten sposób nastąpiło ustawienie czwartego bitu w liczbie 0111 otrzymując 1111. Projekt ,,Absolwent Politechniki Świętokrzyskiej – inŜynier na miarę potrzeb współczesnej gospodarki’’ Program Operacyjny Kapitał Ludzki Priorytet IV Działanie 4.1, Poddziałanie 4.1.2 umowa UDA – POKL.04.01.02-00-213/12-00 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Podobnie moŜna dokonać operacji wyzerowania określonego bitu w liczbie. Np. chcąc wyzerować 3 bit w liczbie b1000 naleŜy wykonać operację AND jednak przygotowaną wcześniej maskę naleŜy zanegować. 1 << 3 = 1000 NOT 1000 = 0111 1000 AND 0111 = 0000 W ten sposób nastąpiło wyzerowanie trzeciego bitu w liczbie 1000 otrzymując 0000. Operację AND moŜna takŜe wykorzystać do sprawdzenia czy w liczbie jest ustawiony określony bit. Np. aby sprawdzić czy w liczbie b1000 trzeci bit ma wartość 1 naleŜy przygotować odpowiednią maskę: 1 << 3 = 1000 następnie naleŜy wykonać operację AND na obliczonej masce i testowanej liczbie: 1000 AND 1000 = 1000 wartość róŜna od zera oznacza Ŝe testowany bit jest ustawiony w testowanej liczbie. 1) Obliczyć wartość wyraŜenia: a) 0 AND 1 OR 1 b) (1 OR 0) AND 1 c) NOT 0 OR 0 d) NOT (0 AND 1) 2) Obliczyć wartość wyraŜenia: a) b0101 AND b1010 b) b1101 OR b0101 c) NOT b0110 AND b0110 d) (b0101 OR b1100) AND NOT b1101 3) Obliczyć wartość wyraŜenia: a) b0110 XOR b1010 b) b1100 XOR b1010 c) b1001 XOR b1111 d) b0110 XOR b1111 Projekt ,,Absolwent Politechniki Świętokrzyskiej – inŜynier na miarę potrzeb współczesnej gospodarki’’ Program Operacyjny Kapitał Ludzki Priorytet IV Działanie 4.1, Poddziałanie 4.1.2 umowa UDA – POKL.04.01.02-00-213/12-00 Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego 4) Wykonać zadane operacje bitowe: a) wyzerować 3 bit w liczbie 7 b) ustawić 2 bit w liczbie 8 c) ustawić 1 bit w liczbie 10 d) wyzerować 2 bit w liczbie 3 5) Sprawdzić czy w podanych liczbach ustawiony jest 3 bit a) 11 b) 12 c) 5 d) 10 Projekt ,,Absolwent Politechniki Świętokrzyskiej – inŜynier na miarę potrzeb współczesnej gospodarki’’ Program Operacyjny Kapitał Ludzki Priorytet IV Działanie 4.1, Poddziałanie 4.1.2 umowa UDA – POKL.04.01.02-00-213/12-00