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