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 • 00=0 • 01=1 • 10=1 • 11=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 • 00=0 • 01=0 • 10=0 • 11=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. • 00=0 • 01=1 • 10=1 • 11=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