Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych 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). Bramki logiczne można konstruować stosujÄ…c różne techniki: przekazniki, urzÄ…dzenia optyczne czy też elektroniczne. W tych ostatnich cyfry 0 i 1 sÄ… reprezentowane w postaci dwóch różnych wartoÅ›ci napiÄ™cia. Bramki (niezależnie od ich wewnÄ™trznej konstrukcji) sÄ… reprezentowane za pomocÄ… okreÅ›lonych symboli graficznych. 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 przedstawiony niżej 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 A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 1- 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 Symbol graficzny funktora OR oraz przykÅ‚ady dziaÅ‚ania tego funktora 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 A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 2- Iloczyn logiczny realizuje przedstawiony niżej ukÅ‚ad Symbol graficzny funktora AND oraz przykÅ‚ady dziaÅ‚ania tego funktora Funktory NAND i NOR NAND a" NOT AND Symbol graficzny funktora NAND NOR a" NOT OR Symbol graficzny funktora NOR A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 3- ALTERNATYWA WYKLUCZAJCA ( ang. XOR, pol. ALBO, mat. •" ) inaczej: różnica symetryczna, suma modulo 2 XOR a" 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 2. Podstawowe operacje logiczne dla liczb binarnych W operacjach logicznych liczba binarna jest traktowana jako zbiór pojedynczych cyfr, rozpatrywanych niezależnie od siebie. Dwuargumentowe operacje logiczne sÄ… wykonywane na cyfrach znajdujÄ…cych siÄ™ na odpowiadajÄ…cych sobie pozycjach PrzykÅ‚ad: Bramki logiczne OR AND i NOT sÄ… podstawowymi elementami, z których konstruuje siÄ™ komputery i urzÄ…dzenia cyfrowe. Aatwo wykazać, że dysponujÄ…c tylko bramkami NAND (lub tylko bramkami NOR) można z nich zbudować bramki NOT, AND i OR, czyli zrealizować każdÄ… dowolnie zÅ‚ożonÄ… funkcjÄ™ logicznÄ…. A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 4- 3. Podstawowe operacje arytmetyczne dla liczb binarnych Dodawanie. Liczby dwójkowe dodajemy podobnie, jak dziesiÄ™tne. Gdy po dodaniu dwóch cyfr uzyskuje siÄ™ wartość niemożliwÄ… do zapisania pojedynczÄ… cyfrÄ…, zachodzi tzw. przeniesienie. Odejmujemy wtedy od wyniku podstawÄ™ systemu, a do nastÄ™pnej (starszej) pozycji dodajemy 1. W przypadku liczb dwójkowych przeniesienie wystÄ…pi już wtedy, gdy wynik dodawania dwu cyfr jest wiÄ™kszy od 1 ReguÅ‚y dodawania: Odejmowanie. ReguÅ‚y odejmowania: A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 5- Mnożenie i dzielenie. PrzykÅ‚ady Mnożenie przez 2 w ukÅ‚adzie binarnym przesuniÄ™cie liczby o jednÄ… pozycjÄ™ w lewo i dopisanie zera z prawej strony liczby Dzielenie przez 2 w ukÅ‚adzie binarnym przesuniÄ™cie liczby o jednÄ… pozycjÄ™ w prawo i odrzucenie ostatniej cyfry (jeÅ›li liczba parzysta to tÄ… cyfrÄ… jest zero) PrzykÅ‚ad: mnożenie przez 10 w ukÅ‚adzie dziesiÄ™tnym i przez 2 w dwójkowym Podobnie mnożenie i dzielenie w ukÅ‚adzie dwójkowym przez 4 i inne potÄ™gi dwójki przesuniÄ™cie w lewo lub w prawo o odpowiedniÄ… liczbÄ™ pozycji. 4. Liczby ujemne Przedstawiony wyżej system binarny, okreÅ›lany mianem naturalnego kodu binarnego (NKB lub NB) pozwala na zapis tylko liczb dodatnich i zera. Aby możliwe byÅ‚o zapisywanie liczb ujemnych, konieczna jest modyfikacja zapisu w taki sposób, żeby ciÄ…g zer i jedynek zawieraÅ‚ informacjÄ™ zarówno o wartoÅ›ci bezwzglÄ™dnej, jak i o znaku liczby. 4.1. Notacja znak-moduÅ‚ (ZM) Liczba reprezentowana jest w postaci ciÄ…gu bitów o ustalonej dÅ‚ugoÅ›ci. Pierwszy bit jest bitem znaku (nie przypisuje mu siÄ™ wagi), 0 oznacza +, 1 oznacza - np. dla liczb czterobitowych: 5 0101 -5 1101 bit znaku A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 6- Niestety, przyjÄ™cie takiego systemu zapisu liczb komplikuje operacje binarnego dodawania i odejmowania, które sÄ… wykonywane przez procesor. Zero nie jest reprezentowane jednoznacznie, mamy bowiem np. 0000 +0 1000 -0 (podwójna reprezentacja zera) 4.2. Notacja uzupeÅ‚nieniowa do 2 (U2) Liczba reprezentowana jest w postaci ciÄ…gu bitów o ustalonej dÅ‚ugoÅ›ci. Znak liczby nie jest tu oddzielony od jej wartoÅ›ci , a ujemność liczby jest wbudowana w metodÄ™ zapisu. Najstarsza waga jest ujemna, np. dla liczb czterobitowych mamy wagi: -23 22 21 20 -8 4 2 1 czyli dla liczb czterobitowych: 0000 0 0001 1 ...................... 0111 7 1000 -8 (tzn. -8+0) 1001 -7 (tzn. -8+1) 1010 -6 (tzn. -8+2) 1011 -5 (tzn. -8+3) ...................... 1111 -1 (tzn. -8+7) Zalety: " każda liczba dodatnia zaczyna siÄ™ od zera, a ujemna od jedynki " tylko jedno zero " Å‚atwa zmiana znaku liczby " operacje arytmetyczne jak dla liczb w kodzie naturalnym Wady: " porzÄ…dek kodów nie jest zgodny z porzÄ…dkiem liczb 4.2.1. Zmiana znaku liczby w notacji U2 Aby zmienić znak liczby, należy zamienić wszystkie cyfry na przeciwne, czyli 0 na 1 oraz 1 na 0 (w kierunku od lewej do prawej) za wyjÄ…tkiem najmniej znaczÄ…cej jedynki i zer za tÄ… jedynkÄ…. A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 7- PrzykÅ‚ad dla liczb czterobitowych (zamiana 5 na 5 i odwrotnie) 4.2.2. Dodawanie i odejmowanie liczb w notacji U2 Dodawanie - tak samo, jak w kodzie naturalnym Odejmowanie - dodanie z przeciwnym znakiem PrzykÅ‚ady dla liczb czterobitowych 4.3. Notacja z nadmiarem (+N) Notacja ta jest wykorzystywana w reprezentacjach zmiennopozycyjnych (np. IEEE754). PorzÄ…dek kodów jest zgodny z porzÄ…dkiem liczb. Liczba reprezentowana jest w postaci ciÄ…gu bitów o ustalonej dÅ‚ugoÅ›ci. Przyjmuje siÄ™, że 00...000 reprezentuje liczbÄ™ najmniejszÄ…, czyli dla liczb k-bitowych 111...111 2k-1 ................ ................ 000...000 -2k-1+1 A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 8- WartoÅ›ciÄ… liczby caÅ‚kowitej jest X = X N +N NB Dla liczb k-bitowych N=2k -1 1 PrzykÅ‚ad 1. Dla liczb 4-bitowych (k=4 czyli N=7) mamy: 1111 8 1110 7 .............. 1000 1 0111 0 ................ 0001 -6 0000 -7 Jest to notacja z nadmiarem 7. CiÄ…g bitów 0000 który w kodzie naturalnym reprezentowaÅ‚by zero, tu reprezentuje -7. Interpretacja naturalna jest o 7 wiÄ™ksza, niż interpretacja w kodzie z nadmiarem. PrzykÅ‚ad 2. Liczba 5 zapisana w 8-bitowej notacji z nadmiarem (+N) 5. Rozszerzenie nieskoÅ„czone Rozszerzenie nieskoÅ„czone to rozszerzenie kodu liczby na wiÄ™kszÄ… liczbÄ™ pozycji z zachowaniem oryginalnej wartoÅ›ci Kod naturalny (NB) wiodÄ…ce zera sÄ… nieznaczÄ…ce PrzykÅ‚ad: 5 zapisane na 4 pozycjach 0101 po rozszerzeniu na 8 pozycji 00000101 A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 9- Kod U2 wiodÄ…ce zera (dla liczb dodatnich) sÄ… nieznaczÄ…ce wiodÄ…ce jedynki (dla liczb ujemnych) sÄ… nieznaczÄ…ce PrzykÅ‚ad: -5 zapisane na 4 pozycjach 1011 po rozszerzeniu na 8 pozycji 11111011 6. Cyfrowe ukÅ‚ady arytmetyczne przykÅ‚ad Odpowiednie poÅ‚Ä…czenie funktorów logicznych pozwala budować ukÅ‚ady wykonujÄ…ce operacje arytmetyczne. ReguÅ‚y dodawania dwu cyfr binarnych w formie tabelki (v , v dodawane cyfry, s ich 1 2 suma, c przeniesienie), UrzÄ…dzenie wykonujÄ…ce dodawanie dwu cyfr binarnych zgodnie z ww. tabelkÄ… (tzw. tabela prawdy) nazywa siÄ™ półsumatorem. Półsumator dodaje dwie cyfry dwójkowe (v , v ), podajÄ…c ich sumÄ™ (s) i przeniesienie (c). 1 2 PrzykÅ‚ad półsumatora zbudowanego z piÄ™ciu funktorów (bramek) NAND A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 10- oraz sprawdzenie jego dziaÅ‚ania dla wszystkich możliwych wariantów danych wejÅ›ciowych A. Spyra Elementy informatyki ... materiaÅ‚y pomocnicze (sem. 2) - 11-