System liczbowy

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.
W przypadku większych liczb, kiedy 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.

Systemy addytywne i pozycyjne 
Bardziej złożone systemy liczbowe można już podzielić na:
 Addytywne, w których liczby tworzy się przez dodawanie kolejnych symboli i stąd ich nazwa (np. jeśli „X”=10, „V”=5, „I”=1 to XVI = 10+5+1 = 16). Systemem addytywnym dziesiątkowym był system egipski, w którym używano oddzielnych hieroglifów dla potęg dziesiątki aż do siódmej włącznie. Innym przykładem addytywnego systemu jest dobrze znany i wciąż stosowany rzymski system zapisywania liczb z podstawowymi wielokrotnościami 10 i 5; jego cyfry są I – 1, V – 5, X – 10, L – 50, C – 100, D – 500, M – 1000; jednak w tym systemie w niektórych przypadkach występuje odejmowanie, a nie tylko dodawanie.
 Pozycyjne, które posiadają symbole (cyfry) tylko dla kilku najmniejszych liczb naturalnych: 0, 1, 2, ...,  gdzie  to tzw. podstawa systemu, która może być dowolną liczbą naturalną większą niż 1. Cyfry te są kolejno umieszczane w ściśle określonych pozycjach i są mnożone przez odpowiednią potęgę  W sytuacji, gdy dana potęga nie jest potrzebna do zapisu danej liczby, zostawia się w zapisie puste miejsce, lub częściej specjalny symbol. Współcześnie jest to cyfra 0. Na przykład liczbę 5004,3 w dziesiętnym systemie liczbowym (czyli systemie, którego podstawą jest 10) odczytuje się jako:
 

Sześćdziesiątkowy system liczbowy, stosowany w Mezopotamii, w którym podstawowymi wielokrotnościami były 10 i 60, był częściowo addytywny, częściowo pozycyjny. Jest on najstarszym znanym systemem każdego z tych dwóch rodzajów. W życiu codziennym spotykamy ślady babilońskiego systemu w podziale godziny na 60 minut, a minuty na 60 sekund, oraz w podziale kąta na minuty i sekundy kątowe.

Zaletą systemów addytywnych jest możliwość zapisu nawet dużych liczb (pod warunkiem, że są okrągłe) za pomocą jednego znaku, a wadą złożoność, kłopoty interpretacyjne i zbyt wielka liczba cyfr przy mało okrągłych liczbach, oraz bardzo skomplikowany sposób dokonywania za ich pomocą prostych operacji arytmetycznych, wymagający zapamiętywania długich tabel.

Zaletą systemów pozycyjnych jest ich klarowność, łatwość dokonywania nawet złożonych operacji arytmetycznych oraz możliwość zapisu dowolnie dużej liczby, jednak do zapisu bardzo dużych liczb (nawet okrągłych) jest potrzebna duża liczba cyfr.

Współcześnie powszechnie używany jest system dziesiątkowy. W informatyce najbardziej rozpowszechniony jest system dwójkowy (binarny). Często stosowany jest również ósemkowy (oktalny) i szesnastkowy (heksadecymalny).

Istnieją również systemy liczbowe, których podstawa nie jest liczbą całkowitą, np. 3/2.

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 stosowany jest też na stronach WWW (HTML, CSS), gdzie służy do określania kolorów poszczególnych elementów wyświetlanej zawartości strony.

Przedstawienie 

Aby przedstawić wybraną liczbę w zapisie pozycyjnym o zadanej podstawie, należy dzielić z resztą kolejne ilorazy przez podstawę do momentu uzyskania jedności i zapisywać w odwrotnej kolejności uzyskane reszty jako cyfry ustalonego systemu zapisu.

Przykład rekurencyjnego algorytmu zapisanego w pseudokodzie z wykorzystaniem operacji modulo (reszty z dzielenia) w postaci podprogramu, który wyświetla daną liczbę naturalną, liczba, w systemie o wybranej podstawie naturalnej, postawa:
 podprogram przedstaw(liczba, podstawa):
     reszta ← liczba modulo podstawa
 
     jeżeli liczba > 1, to
         przedstaw(⌊liczba / podstawa⌋, podstawa)
 
     wyświetl reszta

Przestawienie części ułamkowej liczby polega na mnożeniu jej przez podstawę i zapisywaniu uzyskiwanej części całkowitej.

Niektóre pozycyjne systemy liczbowe 
 dwójkowy system liczbowy
 trójkowy system liczbowy
 system trójkowy zrównoważony
 siódemkowy system liczbowy
 ósemkowy system liczbowy
 dziesiętny system liczbowy
 dwunastkowy system liczbowy
 szesnastkowy system liczbowy
 sześćdziesiątkowy system liczbowy

Inne systemy liczbowe 
 jedynkowy system liczbowy
 złoty system liczbowy
 system Fibonacciego
 silniowy system pozycyjny
 skośny system dwójkowy

Zobacz też 
 aksjomaty i konstrukcje liczb
 odwrotna notacja polska

Przypisy

Bibliografia

Linki zewnętrzne