File

Transkrypt

File
2010-11-28
Wartość dwójkowej liczby stałoprzecinkowej
Wartość dziesiętna stałoprzecinkowej liczby binarnej
bn-1...b1b0,b-1b-2...b-m = bn-12n-1 + ... + b121 + b020 + b-12-1 +
b-22-2 + ... + b-m2-m
Arytmetyka liczb binarnych
Przykład:
Obliczyć wartość stałoprzecinkowej liczby dwójkowej
110101,111011(2) .
Sposób pierwszy
Obliczamy wartość części całkowitej sumując wagi pozycji
zawierających cyfrę 1:
110101(2) = 32 + 16 + 4 + 1 = 53(10)
Identycznie obliczamy wartość części ułamkowej:
0,111011(2) = 1/2 + 1/4 + 1/8 + 1/32 + 1/64
0,111011(2) = 32/64 + 16/64 + 8/64 + 2/64 + 1/64
0,111011(2) = 59/64
Łączymy obie części w całość otrzymując wynik:
110101,111011(2) = 53 59/64
Dodawanie liczb binarnych
W dodawaniu liczb binarnych należy pamiętać o takich
zasadach, że:
• 0+0=0
• 0+1=1
• 1+0=1
• 1 + 1 = 0 i „1” zapisujemy w pamięci,
przenosimy o jedną pozycje dalej
gdzie:
b - bit, cyfra dwójkowa 0 lub 1
n - liczba bitów całkowitych
m - liczba bitów ułamkowych
Sposób drugi
Wartość części całkowitej obliczamy jak powyżej. Część
ułamkową traktujemy chwilowo jak liczbę całkowitą,
obliczamy jej wartość i wynik mnożymy przez wagę ostatniej
pozycji liczby wejściowej:
111011(2) = 32 + 16 + 8 + 2 + 1 = 59
Waga ostatniej pozycji wynosi 1/64, zatem
0,111011(2) = 59 × 1/64 = 59/64
Łączymy część całkowitą z częścią ułamkową i otrzymujemy:
110101,111011(2) = 53 59/64
(5)10+(6)10=(11)10
(5)10=(101)2
(6)10=(110)2
1
2010-11-28
Czyść
(59)10=(0111011)2
(72)10=(1001000)2
(59)10+(72)10=(131)10
Oblicz:
•
•
•
•
•
•
•
•
Odejmowanie liczb binarnych
Odejmowanie liczb binarnych wykonuje się
poprzez zamianę jednej z liczb na ujemną.
A zatem odejmowanie jest niczym innym jak
dodawaniem ujemnych liczb binarnych.
Skoro tak, to trzeba wiedzieć jak zapisywać liczby
binarne dodatnie w postaci ujemnej.
110012 + 10002 = ……………………………….
101010102 + 10110112 = ………………………..
1010112 + 110112 = ……………………….
1111002 + 100102 = ………………………
11010112 + 1011002 = ……………………
110012 + 1112 = ……………………..
111112 + 1002 = …………………………
10101012 + 101012 = ……………………
Zapis Uzupełnienie do 2 – U2
Przepisujemy bity od prawej strony do pierwszej
jedynki (włącznie), a kolejne bity przepisujemy
na odwrót (z zaprzeczeniem).
101101002 = 01001100U2
1011012 = 010011U2
Liczby binarne można zapisać w postaci ujemnej
na dwa sposoby.
Zapis Uzupełnienie do 1 – U1
Wszystkie bity przepisujemy z zaprzeczeniem.
Uzupełnienie do 1 liczby binarnej jest zawsze
negacją bitów tej liczby.
101101002 = 01001011U1
1011012 = 010010U1
Czy liczby ujemne będą zapisane na U1 czy na U2 to
stanowi kwestią umowną.
Należy z góry zdefiniować jaki jest stosowany zapis dla
ujemnych.
W przypadku działań na liczbach ujemnych ostatni bit,
czyli bit znajdujący się po lewej stronie, to bit znaku
informuje nas czy liczba jest w ogóle ujemna czy nie.
Jeżeli jest zero, np. 01111 to znaczy że liczba jest dodatnia
ale jeżeli jest "jedynka", np. 10011 to znaczy ze mamy do
czynienia z liczbą ujemną w zapisie takim jaki został
wyznaczony.
2
2010-11-28
Schemat dodawania w przypadku
zapisu U1
Dodawanie dwóch liczb binarnych w przypadku,
gdy liczby ujemne są reprezentowane w zapisie U1,
wykonywane jest przez dodanie tych liczb wraz z bitami
znaku.
Gdy istnieje przeniesienie z najbardziej znaczącej pozycji, to
wynik zostaje zwiększony o jeden, czyli przeniesienie
dodajemy do najmniej znaczącej pozycji.
Jeżeli wynik dodawania jest dodatni to otrzymana liczba jest
liczbą binarną.
Jeżeli wynik jest ujemny to należy wykonać na nim jeszcze raz
zapis U1, pozostawiając bit znaku bez zmian, i wtedy wynik
przyjmie postać binarną.
Schemat dodawania w przypadku
zapisu U2
Dodawanie dwóch liczb binarnych ze znakiem w
przypadku, gdy liczba ujemna zapisana jest jako U2,
wykonywane jest przez dodanie tych liczb łącznie z
bitem znaku.
Przeniesienie na najbardziej znaczącej pozycji zostaje
odrzucone.
Jeżeli wynik dodawania jest dodatni to otrzymana liczba
jest liczbą binarną.
Jeżeli wynik dodawania jest ujemny to na otrzymanej
liczbie należy wykonać jeszcze raz zapis U2
pozostawiając oczywiście bit znaku bez zmian.
Oblicz stosując zapis U1
•
•
•
•
•
3–5=
-4 + 3 =
2–1=
-3 + 7 =
5–6=
Działania wykonaj na 4 bitach.
Oblicz stosując zapis U2
•
•
•
•
•
5–4=
-3 – 2 =
5–4=
3–7=
-7 + 6 =
Działania wykonaj na 4 bitach.
3
2010-11-28
Mnożenie liczb binarnych
• 0*0=0
0*1=0
1*0=0
1*1=1
• Obie liczby umieszczamy jedna pod drugą tak,
aby ich cyfry znalazły się w kolumnach o tych
samych wagach:
1101
× 1011
• Puste kolumny uzupełniamy zerami i dodajemy
do siebie wszystkie cyfry w kolumnach.
Uważamy na przeniesienia.
1101
× 1011
0001101
0011010
0000000
+ 1101000
10001111
Podstawowe operacje logiczne
• Każdą cyfrę mnożnej mnożymy przez
poszczególne cyfry mnożnika zapisując wyniki
mnożeń w odpowiednich kolumnach - tak samo
postępujemy w systemie dziesiętnym, a tutaj jest
nawet prościej, gdyż wynik mnożenia cyfry przez
cyfrę jest zawsze jednocyfrowy:
1101
× 1011
1101
1101
0000
1101
Oblicz:
•
•
•
•
•
101 * 111 =
1011 * 101 =
111 * 111 =
11 * 1101 =
11011 * 1011 =
Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne
„fałsz” i „prawda”, to działanie elementów
dwustanowych opisują operacje dwuelementowej
algebry Boole’a.
Algebrę Boole’a definiują: dwuelementowy zbiór {0, 1}
oraz trzy operacje: alternatywa (OR), koniunkcja
(AND) i negacja (NOT) wraz ze zbiorem aksjomatów i
twierdzeń.
Zmienne należące do zbioru {0, 1} oraz ww. operacje
nazywamy zmiennymi i operacjami logicznymi.
Układy realizujące funkcje logiczne nazywamy
funktorami logicznymi (powszechnie używa się też
określenia: bramki logiczne)
4
2010-11-28
NEGACJA (ang. NOT, pol. NIE, mat. ~)
Jest to zamiana wartości cyfry na przeciwną (tzn. 0 na 1 i 1 na 0).
~0=1
~1=0
Działanie podstawowych operacji logicznych często przedstawia
się w postaci układów elektrycznych zawierających żarówki i
wyłączniki. Przyjmując, że wyłącznik zwarty i świecąca się
żarówka reprezentują jedynkę, a wyłącznik
rozwarty i zgaszona żarówka
reprezentują zero,
działanie negacji
realizuje układ:
Negacja jest operacją jednoargumentową.
Symbol graficzny funktora realizującego negację:
Negacja jest najprostszym działaniem logicznym. Wynikiem
jest liczba przeciwna do wyjściowej.
Działanie funktora NOT
Suma logiczna
(ang. OR, pol. LUB, mat.  )
Suma logiczna dwu cyfr binarnych jest równa 0 wtedy i tylko
wtedy, gdy obydwie cyfry są równe 0
• 00=0
• 01=1
• 10=1
• 11=1
Sumę logiczną realizuje przedstawiony niżej układ:
Iloczyn logiczny
(ang. AND, pol. I, mat.  )
Iloczyn logiczny dwu cyfr binarnych jest równy 1 wtedy i
tylko wtedy, gdy obydwie cyfry są równe 1
• 00=0
• 01=0
• 10=0
• 11=1
Iloczyn logiczny realizuje przedstawiony niżej układ:
Symbol graficzny funktora OR:
Przykłady działania funktora OR:
Symbol graficzny funktora AND:
Przykłady działania funktora AND:
5
2010-11-28
Funktory NAND i NOR
NAND  NOT AND
Symbol graficzny funktora NAND
NOR  NOT OR
Symbol graficzny funktora NOR
Alternatywa wykluczająca
(ang. XOR, pol. ALBO, mat. )
Inaczej: różnica symetryczna, suma modulo 2
XOR  eXclusive OR
Alternatywa wykluczająca dwu cyfr binarnych jest równa 0
wtedy i tylko wtedy, gdy obydwie cyfry są jednakowe.
• 00=0
• 01=1
• 10=1
• 11=0
Symbol graficzny funktora XOR:
Podstawowe operacje logiczne dla
liczb binarnych
W operacjach logicznych liczba binarna jest traktowana
jako zbiór pojedynczych cyfr.
Cyfrowe układy arytmetyczne
Odpowiednie połączenie funktorów logicznych pozwala
wykonywać operacje arytmetyczne.
Reguły dodawania dwu cyfr binarnych w formie tabelki
(v1 , v2 – dodawane cyfry, s – ich suma, c – przeniesienie)
Urządzenie wykonujące dodawanie dwu cyfr binarnych
zgodnie z ww. tabelką nazywa się półsumatorem
Półsumator dodaje dwie cyfry dwójkowe (v1 , v2), podając
ich sumę (s) i przeniesienie (c).
6
2010-11-28
Przykład półsumatora zbudowanego z pięciu funktorów NAND
oraz sprawdzenie jego działania dla wszystkich możliwych
wariantów danych wejściowych:
Prawa DeMorgana
Przy przekształcaniu wyrażeń logicznych korzysta się często z
dwóch prostych praw zwanych prawami DeMorgana.
Ich zapis słowny brzmi następująco:
• Negacja alternatywy jest równa koniunkcji negacji:
NOT(a OR b) = (NOT a) AND (NOT b).
• Negacja koniunkcji jest równa alternatywie negacji:
NOT(a AND b) = (NOT a) OR (NOT b).
Prawa De Morgana udowadniamy za pomocą tabelek, w których
konstruujemy wyniki wyrażenia po lewej i po prawej stronie
równości i sprawdzamy, czy otrzymaliśmy to samo. Jeśli tak,
to prawo zostaje udowodnione:
7
2010-11-28
8