niedziela, 2 marca 2014

Systemy liczbowe

System liczbowy

 – zbiór reguł jednolitego zapisu i nazewnictwa liczb.

Do zapisywania liczb używa się skończonego zbioru znaków, zwanych cyframi, które można łączyć w dowolnie długie ciągi, otrzymując nieskończoną liczbę kombinacji.


System jedynkowy

Najbardziej prymitywnym systemem liczbowym jest jedynkowy system liczbowy, w którym występuje tylko jeden znak (np. 1, albo (częściej) pionowa kreska). W systemie tym kolejne liczby są tworzone przez proste powtarzanie tego znaku. Np. 3 w tym systemie jest równe 111, a pięć 11111. Systemem takim posługują się np. Pigmeje. Kiedy, w przypadku większych liczb, zaczyna się grupować symbole, np. po 5 (cztery równoległe kreski, przekreślone piątą), mamy do czynienia z przejściem do addytywnego systemu liczbowego.

Dziesiętny system liczbowy 

 – pozycyjny system liczbowy, w którym podstawą pozycji są kolejne wielokrotności liczby 10; do zapisu liczb potrzebne jest w nim 10 cyfr, którymi są 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Liczby zapisuje się jako ciąg cyfr, z których każda jest mnożnikiem kolejnej potęgi liczby stanowiącej podstawę systemu, niekiedy grupowanych po trzy (Okcydent) lub cztery (częśćOrientu). Część całkowitą i ułamkową oddziela separator dziesiętny.
Przykładowo zapis „645,7” z separatorem dziesiętnym w postaci przecinka oznacza
Pozycyjny, dziesiętny system liczbowy jest obecnie na świecie podstawowym systemem stosowanym niemal we wszystkich krajach. Oryginalnie pochodzi on z Indii, z których przedostał się do Europy za pośrednictwem Arabów. Od XVI wieku stosowano go obok systemu rzymskiego, w nauce, księgowościoraz tworzącej się właśnie bankowości, gdyż system ten znacznie upraszcza operacje arytmetyczne. W oficjalnych dokumentach jednak nadal zamieniano liczby w zapisie arabskim na system rzymski. W końcu, dzięki praktycznym zaletom system rzymski został prawie zupełnie wyparty na korzyść arabskiego.

Ósemkowy system liczbowy 

– pozycyjny system liczbowy o podstawie 8. System ósemkowy jest czasem nazywany oktalnym od słowa octal. Do zapisu liczb używa się w nim ośmiu cyfr, od 0 do 7.
Jak w każdym pozycyjnym systemie liczbowym, liczby zapisuje się tu jako ciągi cyfr, z których każda jest mnożnikiem kolejnej potęgi liczby będącej podstawą systemu, np. liczba zapisana w dziesiętnym systemie liczbowym jako 100, w ósemkowym przybiera postać 144, gdyż:
1×82 + 4×81 + 4×80 = 64 + 32 + 4 = 100.
W matematyce liczby w systemach niedziesiętnych oznacza się czasami indeksem dolnym zapisanym w systemie dziesiętnym, a oznaczającym podstawę systemu, np. 1448 = 10010.
Przykład zamiany liczby z systemu dziesiętnego na system ósemkowy:
  • 100/8 = 12 i 4 reszty = 4
  • 12/8 = 1 i 4 reszty = 4
  • 1/8 = 0 i 1 reszty = 1
Teraz czytamy od dołu: 144 w systemie oktalnym to 100 w systemie dziesiętnym.


Dwójkowy system liczbowy, system binarny, bin 

– pozycyjny system liczbowy, w którym podstawą jest liczba 2. Do zapisu liczb potrzebne są tylko dwie cyfry: 0 i 1.


Zmiany systemu

Zamianę z systemu dwójkowego na inny można wykonać poprzez zapisanie liczby jako sumy potęg liczby 2 pomnożonych przez wartość cyfry w systemie, na który przekształcamy. Przykładowo przy zamianie liczby na system dziesiętny:

Cyfra 1 podobnie jak w systemie dziesiętnym ma wartość zależną od swojej pozycji - na końcu oznacza 1, na drugiej pozycji od końca 2, na trzeciej 4, na czwartej 8, itd. Ponieważ  oraz  aby obliczyć wartość liczby zapisanej dwójkowo, wystarczy zsumować potęgi dwójki odpowiadające cyfrom 1 w zapisie.
Zamiana liczby w systemie dziesiętnym na liczbę w systemie dwójkowym może przebiegać według wyżej opisanej zasady, czyli:
Rozbicie na sumę potęg liczby 2 na przykład
Bądź też przez wyznaczanie reszt w wyniku kolejnych dzieleń liczby przez 2:
30 ÷ 2 = 15 reszty 0 - 0 to cyfra jedności,
15 ÷ 2 = 7 reszty 1 - 1 to cyfra drugiego rzędu,
7 ÷ 2 = 3 reszty 1
3 ÷ 2 = 1 reszty 1
1 ÷ 2 = 0 reszty 1
Aby obliczyć wartość dwójkową liczby przepisujemy od końca cyfry reszt. Tak więc .

Szesnastkowy system liczbowy, system heksadecymalny, hex 

– pozycyjny system liczbowy, w którym podstawą jest liczba 16. Skrót hex pochodzi od angielskiej nazwy hexadecimal. Do zapisu liczb w tym systemie potrzebne jest szesnaście znaków (cyfr szesnastkowych).
W najpowszechniejszym standardzie poza cyframi dziesiętnymi od 0 do 9 używa się pierwszych sześciu liter alfabetu łacińskiego: ABCDEF (wielkich lub małych). Cyfry 0-9 mają te same wartości co w systemie dziesiętnym, natomiast litery odpowiadają następującym wartościom: A = 10, B = 11, C = 12, D = 13, E = 14 oraz F = 15.
W kalkulatorach naukowych o siedmiosegmentowych wyświetlaczach LCD stosuje się następujące oznaczenia kolejnych cyfr szesnastkowych: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d, E, F (b i d, zamiast B i D dla rozróżnienia wyświetlania, które wyglądają jak 8 i 0).
Istnieją również projekty ujednolicenia zapisu i wprowadzenia zupełnie nowych cyfr, przeznaczonych dla tego systemu.
Jak w każdym pozycyjnym systemie liczbowym, liczby zapisuje się tu jako ciągi znaków, z których każdy jest mnożnikiem kolejnej potęgi liczby stanowiącej podstawę systemu. Np. liczba zapisana w dziesiętnym systemie liczbowym jako 1000, w systemie szesnastkowym przybiera postać 3E8, gdyż:


Zastosowanie w informatyce

Z racji reprezentacji liczb w pamięci komputerów za pomocą bitów, najbardziej naturalnym systemem w informatyce jest dwójkowy system liczbowy.
W okresie pionierskich czasów komputeryzacji ważną rolę odgrywał system ósemkowy, który spotyka się niekiedy do dziś.
Natomiast naturalny dla ludzi system dziesiętny został wprowadzony dopiero wraz z powstaniem języków programowania wyższego poziomu, których celem było jak największe ułatwienie w korzystaniu z komputerów.
Ze względu na specyfikę architektury komputerów, gdzie często najszybszy dostęp jest do adresów parzystych, albo podzielnych przez 4, 8 czy 16, często używany jest szesnastkowy system liczbowy. Sprawdza się on szczególnie przy zapisie dużych liczb takich jak adresy pamięci, zakresy parametrów itp. Na przykład:
216 = 6553610 = 1000016
232 = 429496729610 = 10000000016
1000016 i 10000000016 są znacznie łatwiejsze do zapamiętania.
System szesnastkowy często spotykany jest też na stronach WWW (HTML), gdzie stosowany jest do zapisu kolorów.

Przykład konwersji

Przykład rekurencyjnej funkcji w C/C++, konwertującej liczby naturalne na system trójkowy:
void triple (int liczba)
{
     int reszta = liczba %3;
     if(liczba>1) triple (liczba/3);
     cout<<reszta;
     return;    
}
Konwersja części ułamkowej liczby polega na mnożeniu jej przez podstawę nowego systemu i odpisywaniu powstałej części całkowitej.


Schemat blokowy konwersji liczby dziesiętnej na binarną.

Brak komentarzy:

Prześlij komentarz