Systemy liczbowe
System liczbowy to zestaw reguł przedstawiania liczb przy użyciu różnych znaków numerycznych. Systemy liczbowe dzielą się na dwa typy: niepozycyjne i pozycyjne.
W pozycyjnych systemach liczbowych wartość każdej cyfry nie zależy od pozycji, jaką zajmuje, to znaczy od miejsca, jakie zajmuje w zbiorze cyfr. W rzymskim systemie liczbowym jest tylko siedem cyfr: jedna (I), pięć (V), dziesięć (X), pięćdziesiąt (L), sto (C), pięćset (D), tysiąc (M). Za pomocą tych liczb (symboli) pozostałe liczby są zapisywane przez dodawanie i odejmowanie. Na przykład IV to zapis liczby 4 (V — I), VI to liczba 6 (V + I) i tak dalej. Liczba 666 zapisywana jest w systemie rzymskim następująco: DCLXVI.
Ten zapis jest mniej wygodny niż ten, którego używamy obecnie. Tutaj szóstka jest zapisywana jednym symbolem (VI), sześć dziesiątek innym (LX), sześćset trzecia (DC). Wykonywanie operacji arytmetycznych na liczbach zapisanych w systemie cyfr rzymskich jest bardzo trudne. Ponadto powszechną wadą systemów niepozycyjnych jest złożoność reprezentowania w nich wystarczająco dużych liczb, aby skutkować niezwykle uciążliwą notacją.
Rozważmy teraz tę samą liczbę 666 w systemie liczb pozycyjnych. W nim pojedynczy znak 6 oznacza liczbę jedynek, jeśli jest na ostatnim miejscu, liczbę dziesiątek, jeśli jest na przedostatnim miejscu, i liczbę setek, jeśli jest na trzecim miejscu od końca. Ta zasada zapisywania liczb nazywa się pozycyjną (lokalną). W takim nagraniu każda cyfra otrzymuje wartość liczbową zależną nie tylko od jej stylu, ale także od miejsca, w którym się znajduje, gdy liczba jest zapisywana.
W systemie liczb pozycyjnych każda liczba przedstawiona jako A = +a1a2a3 … ann-1an może być przedstawiona jako suma
gdzie n — skończona liczba cyfr w obrazie liczby, ii liczba i-go cyfra, d — podstawa systemu liczbowego, i — liczba porządkowa kategorii, dm-i — „waga” kategorii i-ro . Cyfry ai muszą spełniać nierówność 0 <= a <= (d — 1).
Dla zapisu dziesiętnego d = 10 i ai = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Ponieważ liczby składające się z jedynek i zer mogą być postrzegane jako liczby dziesiętne lub binarne, gdy są używane razem, zwykle wskazywana jest podstawa systemu liczbowego, na przykład (1100)2-binarny, (1100)10-dziesiętny.
W komputerach cyfrowych szeroko stosowane są systemy inne niż dziesiętne: dwójkowy, ósemkowy i szesnastkowy.
System binarny
Dla tego układu d = 2 i tutaj dozwolone są tylko dwie cyfry, czyli ai = 0 lub 1.
Każda liczba wyrażona w systemie dwójkowym jest reprezentowana jako suma iloczynu potęgi podstawy pomnożonej przez cyfrę binarną danego bitu. Na przykład liczbę 101,01 można zapisać w następujący sposób: 101,01 = 1×22 + 0x21 + 1×20 + 0x2-1 + 1×2-2, co odpowiada liczbie w systemie dziesiętnym: 4 + 1 + 0,25 = 5.25 .
W większości nowoczesnych komputerów cyfrowych system liczb binarnych jest używany do reprezentacji liczb w maszynie i wykonywania na nich operacji arytmetycznych.
System liczb binarnych, w porównaniu z systemem dziesiętnym, umożliwia uproszczenie obwodów i obwodów urządzenia arytmetycznego i urządzenia pamięci oraz zwiększenie niezawodności komputera. Cyfra każdego bitu liczby binarnej jest reprezentowana przez stany „włącz/wyłącz” takich elementów jak tranzystory, diody, które działają niezawodnie w stanach „włącz/wyłącz”. Do wad systemu binarnego należy zaliczyć konieczność przełożenia według specjalnego programu oryginalnych danych cyfrowych na system liczb binarnych i wyników decyzji na dziesiętny.
System liczb ósemkowych
Ten system ma podstawę d == 8. Liczby są używane do reprezentowania liczb: 0, 1, 2, 3, 4, 5, 6, 7.
System liczb ósemkowych jest wykorzystywany w komputerze jako pomoc w przygotowywaniu problemów do rozwiązania (w procesie programowania), sprawdzaniu działania maszyny oraz debugowaniu programu. Ten system daje krótszą reprezentację liczby niż system binarny. System liczb ósemkowych pozwala po prostu przełączyć się na system dwójkowy.
Szesnastkowy system liczbowy
Ten system ma podstawę d = 16. 16 znaków jest używanych do reprezentowania liczb: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F i znaki A … F reprezentują liczby dziesiętne 10, 11, 12, 13, 14 i 15. Szesnastkowa liczba (1D4F) 18 będzie odpowiadać dziesiętnemu 7503, ponieważ (1D4F)18 = 1 x 163 + 13 x 162 + 14 x 161+ 15 x 16O = (7503)10
Notacja szesnastkowa umożliwia zapisywanie liczb binarnych w sposób bardziej zwarty niż ósemkowy. Znajduje zastosowanie w urządzeniach wejściowych i wyjściowych oraz urządzeniach wyświetlających kolejność liczb niektórych komputerów.
System liczb binarno-dziesiętnych
Reprezentacja liczb w systemie dwójkowo-dziesiętnym jest następująca. Za podstawę przyjmuje się zapis dziesiętny liczby, a następnie każdą z jej cyfr (od 0 do 9) zapisuje się w postaci czterocyfrowej liczby binarnej zwanej tetradą, to znaczy nie używa się ani jednego znaku do reprezentacji każdą cyfrę systemu dziesiętnego, ale cztery.
Na przykład liczba dziesiętna 647,59 odpowiada BCD 0110 0100 0111, 0101 1001.
System liczb binarno-dziesiętnych jest używany jako pośredni system liczbowy oraz do kodowania liczb wejściowych i wyjściowych.
Zasady przenoszenia jednego systemu liczbowego do innego
Wymiana informacji między urządzeniami komputerowymi odbywa się głównie za pomocą liczb reprezentowanych w systemie liczb binarnych. Natomiast informacje prezentowane są użytkownikowi w liczbach w systemie dziesiętnym, a adresowanie poleceń w systemie ósemkowym. Stąd konieczność przenoszenia numerów z jednego systemu do drugiego w trakcie pracy z komputerem. Aby to zrobić, skorzystaj z następującej ogólnej zasady.
Aby przekonwertować liczbę całkowitą z dowolnego systemu liczbowego na inny, należy sukcesywnie dzielić tę liczbę przez podstawę nowego systemu, aż iloraz będzie nie mniejszy niż dzielnik. Liczbę w nowym systemie należy zapisać w postaci reszty z dzielenia, zaczynając od ostatniej, czyli od prawej do lewej.
Na przykład przekonwertujmy dziesiętną liczbę 1987 na binarną:
Liczba dziesiętna 1987 w formacie binarnym to 11111000011, tj. (1987)10 = (11111000011)2
Przy zmianie z dowolnego systemu na dziesiętny liczba jest reprezentowana jako suma potęg podstawy z odpowiednimi współczynnikami, a następnie obliczana jest wartość sumy.
Na przykład zamieńmy liczbę ósemkową 123 na dziesiętną: (123)8 = 1 x 82 + 2 x 81 + 3 x 80 = 64 + 16 + 3 = 83, tj. (123)8 = (83)10
Aby przenieść część ułamkową liczby z dowolnego systemu do innego, należy przeprowadzić kolejne mnożenie tego ułamka i otrzymanych części ułamkowych iloczynu opartego na nowym systemie liczbowym. Ułamkowa część liczby w nowym systemie jest tworzona w postaci całych części wynikowych produktów, zaczynając od pierwszego. Proces mnożenia trwa do momentu obliczenia liczby o określonej precyzji.
Na przykład przekonwertujmy ułamek dziesiętny 0,65625 na system liczb binarnych:
Ponieważ część ułamkowa piątego iloczynu składa się tylko z zer, dalsze mnożenie jest niepotrzebne. Oznacza to, że podany ułamek dziesiętny jest konwertowany na binarny bez błędu, tj. (0,65625)10 = (0,10101)2.
Konwersja z ósemkowego i szesnastkowego na binarny i odwrotnie nie jest trudna. Dzieje się tak, ponieważ ich podstawy (d — 8 i d — 16) odpowiadają liczbom całkowitym dwójki (23 = 8 i 24 = 16).
Aby przekonwertować liczby ósemkowe lub szesnastkowe na binarne, wystarczy zastąpić każdą z ich liczb odpowiednio trzy- lub czterocyfrową liczbą binarną.
Na przykład przetłumaczmy liczbę ósemkową (571)8 i liczbę szesnastkową (179)16 na system liczb binarnych.
W obu przypadkach otrzymujemy ten sam wynik, tj. (571)8 = (179)16 = (101111001)2
Aby przekonwertować liczbę z binarno-dziesiętnej na dziesiętną, musisz zastąpić każdą tetradę liczby reprezentowanej w systemie binarno-dziesiętnym na cyfrę reprezentowaną w systemie dziesiętnym.
Na przykład napiszmy liczbę (0010 0001 1000, 0110 0001 0110)2-10 w notacji dziesiętnej, tj. (0010 0001 1000, 0110 0001 0110)2-10 = (218625)