Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI
Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System dwójkowy (binarny) 2.2. System ósemkowy (oktalny) 2.3. System dziesiętny (decymalny) 2.4. System szesnastkowy (heksadecymalny) 3. Operacje arytmetyczne na liczbach binarnych 3.1. Dodawanie binarne 3.2. Odejmowanie binarne 3.3. Mnożenie binarne 3.4. Dzielenie binarne 4. Zapis liczby binarnej ze znakiem 4.1. Znak moduł ZM 4.2. Znak uzupełnienie do 1 ZU1 (U1) 4.3. Znak uzupełnienie do 2 ZU2 (U2)
Jednostki informacyjne Bit (w ang. kawałek, skrót od binary digit, czyli cyfra dwójkowa) najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych stanów przyjął układ. Jednostka logiczna. Jest to również najmniejsza jednostka informacji używana w odniesieniu do sprzętu komputerowego a oznaczana jest za pomocą b. Przeważnie stosuje się podstawowe przedrostki wielokrotności SI, czyli o mnożniku 1000. Bit przyjmuje jedną z dwóch wartości, które zwykle określa się jako 0(zero) i 1(jeden)
Ponieważ ilość informacji przetwarzanych przez współczesne komputery jest coraz większa, stosuje się wielokrotności bitu i bajtu: 8 bit (8 b)= 1 Bajt (B) 1 kilobit (1 kb)= 1 024 bity (1 024 b) 1 kilobit na sekundę (1 kb/s)= 1 000 bitów na sekundę (1 000 b/s) 1 kilobajt (1 kb)= 1 024 bajty (1024 B) 1 megabajt (1MB)=1 024 kb= 1 048 576 B 1 gigabajt (1GB)= 1 024 MB= 1 048 576 kb= 1 073 741 824 B
Systemy liczbowe System liczbowy to inaczej zbiór reguł jednolitego zapisu i nazewnictwa liczb. Do zapisywania liczb zawsze używa się pewnego skończonego zbioru znaków, zwanych cyframi, które można zestawićze sobą na różne sposoby, otrzymując nieskończenie wiele kombinacji. Wyróżnia się następujące systemy liczbowe: Dwójkowy Ósemkowy Dziesiętny Szesnastkowy
System binarny System liczbowy dwójkowy- binarny- jest pozycyjnym systemem liczbowym, w którym podstawą jest liczba 2. Do zapisu liczb są więc potrzebne tylko dwie cyfry: 0 i 1. Liczby zapisuje się tu jako ciągi cyfr 0 i 1, z których każda jest mnożnikiem kolejnej potęgi podstawy systemu, czyli liczby 2. Używa się go powszechnie w elektronice cyfrowej, gdzie minimalizacja liczby stanów pozwala na zminimalizowanie przekłamań danych. Stąd system ten przyjął się także w informatyce.
Sposoby zapisywania liczb w systemie binarnym Zapisując liczbę w systemie binarnym należy zaznaczyć że jest to konkretny system przez dodanie dolnego indeksu np.: 11111(2) lub 11111(B). Jeśli jest to inny system opisuje się go odpowiednio umownymi znakami w ten sam sposób, co pozwala uniknąć ewentualnego błędu, gdyż na przykład liczba 11110 może występować w każdym systemie.
Zamiana liczby binarnej na dziesiętną: Sposób pierwszy polega na wybraniu odpowiednich liczb- wartości potęg liczby 2. Należy wybrać liczby w taki sposób, aby ich suma była równa wartości liczby przekształcanej. Sumowanie zaczynamy od liczby, która ma wartość najbardziej zbliżoną do wartości przekształcanej liczby. Jeżeli wybieramy daną wartość potęgi liczby 2, to stawiamy pod nią cyfrę 1 lub 0 w zależności czy kolejna potęga zmieści się w przekształcanej liczbie (1) czy nie (0).
Zamiana liczby binarnej na dziesiętną: Drugi sposób polega na kolejnym dzieleniu liczby przez 2. Jeżeli po dzieleniu zostaje reszta, to wpisujemy po prawej stronie 1, leżeli liczba dzieli się bez reszty wpisujemy 0.
Zamiana liczby binarnej na dziesiętną Należy wszystkie cyfry po kolei z każdej pozycji dodać pomnożone przez kolejnąpotęgęliczby 2. Zaczynając od ostatniej cyfry.
System ósemkowy-oktalny Ósemkowy-oktalny-system liczbowy jest pozycyjnym systemem liczbowym o podstawie 8. Do zapisu używa sięw nim ośmiu cyfr, od 0 do 7.
Zamiana liczby binarnej na oktalną Liczbę należy podzielićpo 3 bity, zaczynając od prawej strony. Następnie należy zamienićkażde otrzymane trzy cyfry systemu binarnego na odpowiadającąim jedną cyfręsystemu oktalnego. Przykład : 101 100 110 010 (B) 5 4 6 2 = 5462 (O)
Zamiana liczby decymalnej na oktalną Przeliczając system decymalny na oktalny wykonujemy takie same czynności jak podczas przeliczania na system binarny, z takąróżnicą, że dzielimy liczbę decymalną przez 8.
Zamiana liczby oktalnej na decymalną Przeliczając system oktalny na decymalny należy wszystkie cyfry po kolei z każdej pozycji dodać pomnożone przez kolejnąpotęgęliczby 8. Zaczynając od ostatniej cyfry.
System dziesiętny-decymalny System dziesiętny-decymalny-jest systemem liczbowym pozycyjnym, w którym podstawą pozycji sąkolejne potęgi liczby 10. Do zapisu jest potrzebne więc 10 cyfr od 0 do 9.
System szesnastkowyheksadecymalny System szesnastkowy- heksadecymalny- jest pozycyjnym systemem liczbowym, w którym podstawą pozycji SA kolejne potęgi liczby 16. Do zapisu liczb potrzebne jest 16 kolejnych znaków od 0 do 9, natomiast od 10 do 15 liczby oznaczane są kolejnymi liczbami alfabetu: A=10, B=11, C=12, D=13, E=14, F=15. System ten jest powszechnie stosowany w informatyce. Jak w każdym pozycyjnym systemie liczbowym, liczby zapisuje się jako ciąg cyfr, z których każda jest mnożnikiem kolejnej potęgi liczby 16. Część całkowitą i ułamkową oddziela separator dziesiętny.
Zamiana liczby binarnej na heksadecymalną Przeliczając system binarny na heksadecymalny należy podzielić liczbę po 4 bity, zaczynając od prawej. Następnie należy Zamienic każde otrzymane cztery cyfry systemu binarnego na odpowiadającą im jedną cyfrę systemu heksadecymalnego.
Zamiana liczby decymalnej na heksadecymalną Przeliczając system decymalny na heksadecymalny, wykonujemy takie same czynności jak podczas przeliczania na system binarny i ósemkowy, ale dzielimy liczbę decymalną przez 16.
Zamiana liczby heksadecymalnej na decymalną Przeliczając system heksadecymalny na decymalny należy wszystkie cyfry po kolei z każdej pozycji dodać pomnożone przez kolejną potęgę liczby 16. Zaczynając od ostatniej cyfry.
Operacje arytmetyczne na liczbach binarnych: Dodawanie Aby dobrze wykonaćdodawanie niezbędna jest znajomość tabliczki dodawania, zwłaszcza wyniki dodawania każdej liczby z każdą. W systemie binarnym są tylko dwie cyfry 0 i 1, więc dodawanie jest bardzo proste i składa się tylko z 4 kombinacji.
Operacje arytmetyczne na liczbach binarnych: Odejmowanie Przy odejmowaniu należy skorzystaćz tabliczki odejmowania, która wygląda tak:
Odejmując 0-1, otrzymując wynik 1 i pożyczkę od następnej pozycji. Pożyczka oznacza konieczność odjęcia 1 do wyniku odejmowania cyfr w następnej kolumnie. Identycznie postępujemy w systemie dziesiętnym, lecz jest to o wiele bardziej skomplikowane. Załóżmy, że od liczb większych odejmujemy mniejsze.
Operacje arytmetyczne na liczbach Przy mnożeniu należy binarnych: Mnożenie skorzystać z tabeli mnożenia. Tabliczka mnożenia binarnego posłuży do tworzenia iloczynów cząstkowych cyfr mnożnej przez cyfry mnożnika. Iloczyny te następnie dodajemy według opisanych zasad i otrzymujemy wynik mnożenia.
Operacje arytmetyczne na liczbach binarnych: Dzielenie Dzielenie binarne jest najbardziej skomplikowanąoperacjąarytmetyczną. Polega na cyklicznym odejmowaniu odpowiednio przesuniętego dzielnika od dzielnej.
Porównujemy dzielnąz dzielnikiem. Jeżeli dzielna jest większa lub równa dzielnikowi, to odejmujemy od niej dzielnik. Nad kreskąna pozycji ostatniej cyfry dzielnika należy napisać 1. Jeżeli dzielna jest mniejsza od dzielnika, to nie należy wykonywaćodejmowania, lecz trzeba przesunąć dzielnik o 1 pozycję w prawo i powtórzyć opisane operacje. Jeśli w ogóle dzielnika nie da się odjąćod dzielnej, to wynik dzielenia wynosi 0, a dzielna ma w takim przypadku wartość reszty z dzielenia. W tym przykładzie odejmowanie to jest możliwe więc:
Dzielnik trzeba przesunąć o jeden bit w prawo i wykorzystać to samo z otrzymaną różnicą. Jeśli odejmowanie jest możliwe, to nad kreską w następnej kolumnie trzeba dopisać 1, odjąć dzielnik od różnicy, przesunąć go o 1 bit w prawo i kontynuować. Gdy odejmowanie nie jest możliwe trzeba dopisać nad kreską 0 i przesunąć dzielnik o 1 bit w prawo. Te działania należy kontynuować, aż ostatni bit dzielnika zrówna się z ostatnim bitem dzielnej.
Zapis liczby binarnej ze znakiem Zapis liczby binarnej ze znakiem wymaga co najmniej jednego dodatkowego bitu (bitu znaku). Metody zapisu: 1. Znak moduł- ZM 2. Uzupełnienia znaku jedności- U1 3. Uzupełnienia dwójkowego- U2
Znak moduł-zm Liczba ZM składa sięz dwóch części: bitów znaków i wartości modułu. (n-ilość bitów w zapisie liczby)
Dla liczb dodatnich i zera, bit znaku ma wartość 0 Dla liczb ujemnych i zera, bit znaku ma wartość 1 Moduł liczby, czyli ZM jest zapisany w naturalnym kodzie dwójkowym. Zatem w celu obliczenia jej wartości moduł mnożymy przez 1, gdy bit znaku wynosi 1.
2) Obliczamy wartość absolutną liczby, czyli jej moduł (wartość bezwzględną). 3) Wyznaczamy bity modułu (przeliczamy liczbę dziesiętną na system binarny). 4) Otrzymane bity modułu uzupełniamy w miarę potrzeby bitami o wartości 0, aby otrzymać ustaloną w formacie liczbę bitów dla modułu. 5) Do bitu modułu dodajemy bit znaku i otrzymujemy zapis ZM.
Uzupełnienia znaku jedności U1
Sposób przeliczania liczby dziesiętnej na U1: 1) Jeśli liczba jest dodatnia, znajdujemy jej reprezentację w naturalnym kodzie binarnym i uzupełniamy bitami w wartości 0 do uzyskania żądanej liczby litów. 2) Jeśli liczba jest ujemna obliczamy jej moduł. Przedstawiamy go w naturalnym systemie binarnym, uzupełniając go bitami o wartości 0, do długości przyjętego formatu U1, następnie wszystkie bity zamieniamy na przeciwne i otrzymujemy format zapisu U1.
Uzupełnienia dwójkowego-u2. Bit znakowy ma wartość -2n-1 wagi stają się teraz jednorazowe, bit znakowy posiada wagę ujemną lecz wartości bezwzględne takiej samej jak w naturalnym kodzie binarnym. Liczba jest dodatnia, gdy bit znaku ma wartość 0, suma pozostałych wag tworzy zawsze liczbę dodatnią lub 0. Jeżeli bit znaku przyjmuje wartość 1 to liczba jest ujemna. Wartość liczby U2 obliczamy zgodnie z wcześniej poznanymi zasadami- cyfry mnożymy przez wagi pozycji, na których się znajdują i dodajemy otrzymane iloczyny, waga bitu znakowego jest ujemna.
Przeliczanie liczby dziesiętnej na U2: 1) Dla liczb dodatnich należy znaleźć reprezentację trójkową danej wartości liczbowej a następnie uzupełnić ją bitami o wartości 0 do długości formatu kodu U2 2) Dla liczb ujemnych, jeśli do liczby 2n dodamy przetwarzaną liczbę dziesiętną, to w wyniku otrzymamy wartość kodu binarnego, równoważnego bitowo kodowi U2 przetwarzanej liczby. Wynik dodawania wystarczy zapisać w postaci naturalnego kodu binarnego.