System liczbowy

Runiczne cyfry w systemie piątkowym używane w średniowieczu w Skandynawii do zapisu dat

System liczbowy, układ numeracji[1] – 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[potrzebny przypis]. 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[2]:

  • 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[3].

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

Inne systemy liczbowe

Zobacz też

Przypisy

  1. numeracji układy, [w:] Encyklopedia PWN [online], Wydawnictwo Naukowe PWN [dostęp 2024-03-27].
  2. liczbowe systemy, [w:] Encyklopedia PWN [online], Wydawnictwo Naukowe PWN [dostęp 2024-03-27].
  3. Ben Chen i inni, On Base 3/2 and its Sequences, „arXiv:1808.04304 [math]”, 13 sierpnia 2018, arXiv:1808.04304 [dostęp 2018-08-14].

Bibliografia

  • Georges Ifrah: Dzieje liczby, czyli Historia wielkiego wynalazku. Wrocław: Zakład Narodowy im. Ossolińskich, 1990. ISBN 83-04-03218-X.

Linki zewnętrzne