Wersja z 2021-05-30

Część poprzednia Spis treści Część następna

Pozycyjne systemy liczbowe

System liczbowy można rozumieć jako system liczebników, czyli system nazywania liczb. O różnych systemach liczebników mowa w innym artykule.

Zasadniczo jednak system liczbowy to system zapisywania liczb przy pomocy skończonej liczby znaków, zwanych cyframi. Istnieją systemy liczbowe pozycyjne i addytywne. Przykładem addytywnego systemu liczbowego jest rzymski system zapisu liczb. Systemami takimi nie będziemy się tu zajmować.

W pozycyjnym systemie liczbowym istnieje liczba zwana bazą, której naturalne potęgi zapisuje się przy pomocy cyfry 1 oraz tylu zer, ile wynosi potęga. System pozycyjny wymaga tylu różnych cyfr, ile wynosi baza. Wyjaśnimy to poniżej.

Baza: 2 3 4 5 6 7 8 10 16 20 24 60

System dziesiętny

Na co dzień liczymy, posługując się systemem o bazie „10”, zwanym systemem dziesiętnym, a określanym też jako decymalny. Oznacza to, że liczbę „dziesięć” zapisujemy „10”. Piszemy cyfrę „1” oraz jedno zero, ponieważ „dziesięć” to baza w pierwszej potędze. Liczbę „sto” zapisujemy przy pomocy jedynki i dwóch zer, ponieważ „sto” jest to „dziesięć” podniesione do drugiej potęgi, `100 = 10^2`. Z kolei „tysiąc” to jedynka i trzy zera, ponieważ `1000 = 10^3`.

Zaważmy, że ilość cyfr danej liczby w zapisie dziesiętnym jest większa o jeden od najwyższej użytej potęgi dziesiątki, ponieważ ostatnia pozycja ma numer zero. Stąd liczba opisująca trzecią potęgę bazy ma cztery cyfry, odpowiadające pozycjom 3, 2, 1 i 0. Mówimy też, że liczba `1000` ma cyfrę `1` na pozycji tysięcy (tj. na pozycji `10^3` lub na pozycji 3), cyfrę `0` na pozycji setek (tj. na pozycji `10^2` lub na pozycji 2), cyfrę `0` na pozycji dziesiątek (tj. na pozycji `10^1` lub na pozycji 1) i wreszcie cyfrę `0` na pozycji jedności (tj. na pozycji `10^0` lub na pozycji 0). Do problemu wrócimy, analizując inne systemy liczbowe.

W systemie dziesiętnym istnieje dziesięć cyfr, czyli tyle, ile wynosi baza. Są to kolejno `0, 1, 2, 3, 4, 5, 6, 7, 8, 9`. Jest to system dziś zdecydowanie dominujący wśród ludzi różnych kultur i języków, a jego rozpowszechnienie wynika z faktu, że mamy dziesięć palców u rąk. System dziesiętny jest podstawą liczenia w językach najważniejszych rodzinach językowych, w tym indoeuropejskich, semickich, ałtajskich i chińsko-tybetańskich.

Systemy na bazie potęg dwójki

System dwójkowy

System o bazie „2”, czyli system dwójkowy, zwany też binarnym, używa tylko dwóch cyfr, `0` i `1`. Występuje sporadycznie w językach naturalnych. Według Alfreda F. Majewicza występuje w językach khoisan, w niektórych językach indiańskich, papuaskich i australijskich, w tym aranda.

System binarny używany jest natomiast w urządzeniach elektronicznych, ponieważ bazuje na dwóch tylko stanach: włączony (`1`) i wyłączony czyli zgaszony (`0`), co jest łatwe do odczytu i zapisu. Ponieważ bazą tego systemu jest „dwa”, liczba ta w zapisie dwójkowym ma postać `10`. Jeśli z kontekstu nie wynika, w jakim systemie zapisano liczbę, używamy po nim zapisu bazy (w systemie dziesiętnym), podanego w dolnej linii pisma. Możemy więc zapisać `2_10 = 10_2`, co oznacza, że liczbie `2` zapisanej w systemie dziesiętnym odpowiada zapis `10` (czytany „jeden zero”, a nie „dziesięć”!) w systemie dwójkowym.

Aby zapisać daną liczbę w dowolnym systemie, trzeba pamiętać wartości kolejnych potęg bazy. Chcąc zatem posługiwać się np. systemem dwójkowym, można zapamiętać wartości kolejnych potęg dwójki: `2^0 = 1`, `2^1 = 2 = 10_2`, `2^2 = 4 = 100_2`, `2^3 = 8 = 1000_2`, `2^4 = 16 = 10000_2`, `2^5 = 32 = 100000_2`, `2^6 = 64 = 1000000_2` itd. W systemie dwójkowym zamiast pozycji jedności, dziesiątek, setek itd. mamy więc pozycję jedności, dwójek, czwórek, ósemek, szesnastek itd.

Liczby niebędące potęgami dwójki zapisujemy jako sumy odpowiednich potęg. Jeśli w sumie występuje dana potęga, w zapisie dwójkowym występuje jedynka, jeśli jej nie ma, występuje zero. Np. dziesiętne `10` możemy zapisać w postaci sumy potęg dwójki `8 + 2`, co daje `2^3 + 2^1`. Zatem zapis dwójkowy będzie miał 4 pozycje (odpowiadające potęgom dwójki od 3 do 0), przy czym na pozycjach 3 i 1 będą jedynki, a na pozycjach 2 i 0 będą zera: `1010`. Cały rachunek można zapisać tak:

`10 = 8 + 2 = 2^3 + 2^1 = 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 1010_2`

Możemy też liczyć, dodając potęgi bazy zapisane w systemie dwójkowym:

`10 = 8 + 2 = 2^3 + 2^1 = 1000_2 + 10_2 = 1010_2`

Istnieje też druga, wygodniejsza metoda zamiany, niewymagająca pamiętania wartości potęg danej liczby. W metodzie tej dzielimy daną liczbę przez bazę bez znajdowania cyfr po przecinku i zapisujemy resztę. Powtarzamy procedurę, dzieląc całkowitoliczbową część uprzednio otrzymanego wyniku. Postępujemy w ten sposób tak długo, aż otrzymamy w wyniku zero. Kolejne reszty zapisujemy od prawej do lewej.

Poddajmy tej procedurze liczbę `10`, zamieniając ją na zapis dwójkowy. Mamy zatem `10 : 2 = 5` bez reszty, z czego wnioskujemy, że ostatnią cyfrą w zapisie dwójkowym jest `0`. Teraz poddajemy operacji wynik `5` i wykonujemy dzielenie: `5 : 2 = 2` i reszta `1`, którą dopisujemy z lewej strony, otrzymując `10`. W trzecim kroku dzielimy wynik `2` (bez uwzględnienia reszty), otrzymując `2 : 2 = 1` z resztą `0`, które dopisujemy z lewej strony: `010`. Musimy jeszcze podzielić `1 : 2 = 0` z resztą `1`, którą znów dopisujemy z lewej, dostając `1010`. A ponieważ całkowitoliczbowym wynikiem dzielenia jest zero, kończymy procedurę, co pozwala nam zapisać `10_10 = 1010_2`.

Spróbujmy w podobny sposób zapisać w systemie dwójkowym liczbę `1000`. Pierwsza metoda prowadzi do następującego rozkładu:

`1000 = 512 + 488 = 512 + 256 + 232 = 512 + 256 + 128 + 104 = 512 + 256 + 128 + 64 + 40 = 512 + 256 + 128 + 64 + 32 + 8`

`1000 = 1 * 2^9 + 1 * 2^8 + 1 * 2^7 + 1 * 2^6 + 1 * 2^5 + 1 * 2^3`

`1000_10 = 1111101000_2`

Druga metoda prowadzi do następujących dzieleń:

`1000 : 2 = 500` r `0`
`500 : 2 = 250` r `0`
`250 : 2 = 125` r `0`
`125 : 2 = 62` r `1`
`62 : 2 = 31` r `0`
`31 : 2 = 15` r `1`
`15 : 2 = 7` r `1`
`7 : 2 = 3` r `1`
`3 : 2 = 1` r `1`
`1 : 2 = 0` r `1`

z czego po odczytaniu reszt od dołu ku górze wynika, że `1000_10 = 1111101000_2`.

Odczytanie liczby zapisanej w systemie dwójkowym (krótko: liczby dwójkowej lub liczby binarnej), to znaczy jej zamiana na doskonale nam znany system dziesiętny, jest dość proste, ale wymaga znajomości potęg bazy, czyli dwójki. Np. liczba dwójkowa `1010_2` ma jedynkę na pozycji ósemek, zero na pozycji czwórek, jedynkę na pozycji dwójek, i zero na pozycji jedności, przedstawia więc liczbę dziesiętną `1 * 8 + 0 * 4 + 2 * 2 + 0 * 1 = 8 + 2 = 10`.

Jedenastocyfrowa liczba binarna `10110111001_2` oznacza z kolei liczbę dziesiętną:

`1 * 2^10 + 1 * 2^8 + 1 * 2^7 + 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2^0 = 1024 + 256 + 128 + 32 + 16 + 8 + 1 = 1465`

(w rachunku pomijamy te potęgi, na pozycjach których występują zera).

Liczby binarne oznacza się odpowiednim indeksem dolnym, ale w informatyce stosuje się także inne sposoby, np. dopisanie prefiksu % lub 0b, albo sufiksu b. Zatem np. dziesiętne `4143` można przestawić jako `1000000101111_2`, `"%"1000000101111`, `0"b"1000000101111` lub `1000000101111"b"`.

Z uwagi na stosowanie w informatyce systemu dwójkowego przyjmuje się, że wielokrotności jednostki ilości informacji lub pojemności pamięci, bajta, nie są potęgami tysiąca, czyli `10^3`, ale `1024`, czyli `2^10`. Stąd kilobajt ma `1024` bajty, a nie `1000` bajtów, megabajt to `2^20 = 1 048 576` bajtów, gigabajt to `2^30 = 1 073 741 824` bajty, a terabajt to `2^40 = 1 099 511 627 776` bajtów.

Producenci twardych dysków ze względów marketingowych (tzn. chcąc oszukać klientów) nie stosują się do tej konwencji, i zamiast przedrostków binarnych, stosują zwykłe, dziesiętne. Dysk o pojemności `1` gigabajta ma zatem w rzeczywistości zaledwie `953`,`67` megabajtów pojemności. Podobnie podając szybkość transferu danych (w bodach czyli bitach na sekundę) używa się przedrostków dziesiętnych.

Aby uporządkować ten niewątpliwy bałagan, przyjmuje się zapis `1` KB dla kilobajta binarnego (liczącego `1024` bajty), a `1` kB dla kilobajta dziesiętnego (liczącego `1000` bajtów). Jednak megabajtów, gigabajtów czy terabajtów w ten sposób odróżnić się nie da. Dlatego zaproponowano, by kilobajty binarne oznaczać skrótem KiB, podobnie megabajty binarne skrótem MiB, gigabajty binarne skrótem GiB itd. Propozycja ta z wolna znajduje uznanie. Znacznie oporniej przyjmują się propozycje nazw jednostek binarnych: kibibajt, mebibajt, gibibajt, tebibajt.

A oto jak przeliczać jednostki binarne i decymalne:

kilobajt 1 kB 103 B 1000 B 0,977 KiB  
  1,024 kB 210 B 1024 B 1 KiB kibibajt
megabajt 1 MB 106 B 1 000 000 B 0,954 MiB  
  1,049 MB 220 B 1 048 576 B 1 MiB mebibajt
gigabajt 1 GB 109 B 1 000 000 000 B 0,931 GiB  
  1,074 GB 230 B 1 073 741 824 B 1 GiB gibibajt
terabajt 1 TB 1012 B 1 000 000 000 000 B 0,909 TiB  
  1,100 TB 240 B 1 099 511 627 776 B 1 TiB tebibajt
petabajt 1 PB 1015 B 1 000 000 000 000 000 B 0,888 PiB  
  1,126 PB 250 B 1 125 899 906 842 624 B 1 PiB pebibajt

System czwórkowy

Liczby zapisane w systemie dwójkowym są długie i dlatego niepraktyczne w stosowaniu. Dość szybko pojawiły się więc inne systemy, które dawały się łatwo przekształcić do zapisu dwójkowego, ale miały krótsze zapisy.

System czwórkowy czyli kwaternalny pozwala na uproszczenie zapisu binarnego przez zastąpienie dwóch cyfr jedną. Używa czterech cyfr: `0, 1, 2, 3`, które zastępują grupy cyfr dwójkowych `00, 01, 10, 11`, zaczynając od prawej.

Np. `10110111001_2 = 1` `01` `10` `11` `10` `01_2 = 112321_4`.

System ten nie znalazł szerszego zastosowania w technice. Choć nie wszyscy ludzie liczą w systemie dziesiętnym, w językach naturalnych system czwórkowy jest dziś skrajnie rzadki i można go potkać jeszcze tylko w niektórych językach Nowej Gwinei i Celebesu. Oparty jest zapewne na ilości nóg zwierząt lub ilości palców jednej dłoni innych niż kciuk; w Indonezji do dziś używa się terminu aso lub asu, normalnie znaczącego ‘pies’, w zastępstwie liczebnika ‘4’, w podobny sposób, jak u nas używa się terminu ‘tuzin’ w zastępstwie liczebnika ‘12’. Tego typu zwyczaje są powszechne w Melanezji.

Baza `4` lub ślad jej używania zwykle występuje obok innych baz. Spośród rodziny transnowogwinejskiej, język kakoli z grupy hagen używa baz `4` i `24`, kewa z grupy engan zna kilka sposobów liczenia, w tym oparty na bazie `4` (p. Majewicz), a mbowamb z grupy hagen używa baz `2`, `4` i `8`. Bazy `4`, `12` i `24` opisano w języku skou (rodzina sko), a bazy `4` i `24` w austronezyjskim języku tobati.

Ślady liczenia w systemie czwórkowym odnajdziemy też w Afryce. W języku nyali (rodzina bantu) używano różnych baz, stąd liczebniki mają następującą budowę: `8 = 2*4, 9 = 2*4 + 1, 13 = 12 + 1, 14 = 12+ 2, 16 = 2*8, 17 = 2*8+1, 20 = 2*10`. Bazy `4`, `24`, `32` występują w językach ngiti i lendu z grupy centralnosudańskiej. W wielu innych językach bantu i centralnosudańskich obserwujemy ślady systemu czwórkowego zmieszane z bazami `10` lub `20`. W języku afúdu system czwórkowy używany jest do liczebnika 10, powyżej używa się systemu dziesiętnego.

Zachodnioczadyjski język yiwom z rodziny afroazjatyckiej wyraża liczebniki od 7 do 9 jako `4 + 3`, `4 + 4`, `4 + 5`, poza tym nie znaleziono innych śladów systemu czwórkowego.

Baza `4` była obecna w językach chińsko-tybetańskich. Jej ślady występują w używanych w Indiach językach bodo i deuri (grupa bodo-garo). W języku bai jest udokumentowany system oparty na bazach `4`, `16` i `80` używany przy liczeniu pieniędzy w średniowieczu.

System czwórkowy istniał też pierwotnie w niektórych wymarłych kalifornijskich językach czumaszańskich (czumaskich, Majewicz), m.in. Ventureño, gdzie podstawą liczenia były liczebniki ‘4’ i ‘16’. Bazy `4`, obok `8`, używał też język juki. W Ameryce Południowej izolowany język lule używał systemu czwórkowego aż do `10`, po czym przechodził na bazy `5`, `10` i `20`. Podobnie w systemie czwórkowym do `10` liczono w dawnym języku guaraní (tylko w dawnych zapisach), a ślady analogicznego systemu znaleziono w językach mocovi i toba z rodziny guaicuruańskiej oraz w izolowanym języku payaguá. Bazę `4` (obok `2`) raportowano w XIX w. w języku apinayé z rodziny jê z Brazylii bez podania konkretnych form.

Wreszcie ślady systemu czwórkowego znajdujemy w językach indoeuropejskich. W piśmie kharoṣti cyfry (do 10) oparte były na bazie ‘4’. Na związki z systemem czwórkowym wskazuje też praindoeuropejski liczebnik ‘8’, *oḱtō(u), mający postać liczby podwójnej. Jego liczba pojedyncza się nie zachowała, ale zbliżony do niej jest kartwelski liczebnik `4` (gruz. ოთხი otʰxi).

Zasady konwersji tego systemu są analogiczne jak systemu dwójkowego. Najlepiej wcześniej zamienić zapis czwórkowy na dwójkowy, o czym niżej.

System ósemkowy

Łączenie cyfr binarnych po dwie jest wciąż niewygodne, dlatego programiści zwrócili uwagę na inne możliwości, wzorując się na językach naturalnych. Dziś w Europie stosują one na ogół tysięczno-dziesiętny system liczebników, co oznacza, że czwarta potęga bazy bywa nazywana złożonym terminem „dziesięć tysięcy”. W ślad za tą właściwością języka matematyka europejska stosuje zapisy w rodzaju `10` `000`, dzieląc liczby na trzycyfrowe grupy, począwszy od prawej strony, i oddzielając te grupy przerwami. Podobną procedurę zaczęto stosować dla systemu dwójkowego, pisząc `1` `111` `101` `000` zamiast `1111101000` (co oznacza `1000` w zapisie dziesiętnym). Dla wygody i oszczędzenia miejsca postanowiono pójść jeszcze dalej, i zamiast trzech cyfr binarnych stanowiących grupę zaczęto pisać jedną cyfrę, teoretycznie dziesiętny odpowiednik danej trzycyfrowej liczby dwójkowej. Stąd zamiast `1` `111` `101` `000` otrzymalibyśmy `1750` (gdzie `1` to binarne `1`, `7` to binarne `111` czyli `4 + 2 + 1`, dalej `5` to binarne `101`, wreszcie `0` odpowiada grupie `000`.

Zauważmy, że pisząc w ten sposób, będziemy wykorzystywać jedynie cyfry od `0` do `7`, a liczbę (dziesiętną) `8` zapiszemy jako `10`. Rzeczywiście, `8_10 = 1000_2`, co po oddzieleniu trzech zer i zastąpieniu ich jednym da `10`. Zastosowany przez nas system będzie więc w istocie ósemkowy, czyli oktalny. W systemie tym `8_10 = 10_8`, a na przykład `10_10 = 12_8`. Rzeczywiście tak jest, skoro `10_10 = 1010_2`, a ponieważ dwójkowe `010` odpowiada dziesiętnej cyfrze `2`, to `1010_2 = 12_8`.

Przeliczanie odwrotne, z systemu ósemkowego na dwójkowy, nie wymaga żadnych obliczeń, a jedynie zastępowania jedna po drugiej cyfr ósemkowych ich odpowiednikami dwójkowymi. Na przykład `144_8 = 1` `100` `100_2` (chodzi oczywiście o `100_10`). Więcej na ten temat niżej.

Natomiast algorytm przejścia z systemu dziesiętnego na ósemkowy jest analogiczny do tego używanego dla otrzymania zapisu binarnego. Pokażemy to, posługując się metodą drugą (dzielenia z resztą).

Znajdźmy zapis liczby (dziesiętnej) `100` w systemie ósemkowym. W tym celu dzielimy `100 : 8 = 12` r `4`, i zapisujemy tę resztę na ostatniej pozycji (najbardziej prawej) szukanej liczby oktalnej. Dzielimy teraz wynik: `12 : 8 = 1` r `4`. Zapisujemy więc kolejną cyfrę `4`, na lewo od poprzednio zapisanej. Na końcu dzielimy `1 : 8 = 0` r `1`, i tym sposobem otrzymujemy ostatecznie, że `100_10 = 144_8`.

Wreszcie „odczytanie” liczby oktalnej, tj. jej konwersja na system dziesiętny, wymaga znajomości potęg ósemki (albo ich każdorazowego obliczania). Np. `220_8 = 2 * 8^2 + 2 * 8^1 + 0 * 8^0 = 2 * 64 + 2 * 8 = 128 + 16 = 144`.

Liczby ósemkowe oznacza się odpowiednim indeksem dolnym, ale w informatyce stosuje się także inne sposoby, np. dopisanie prefiksu 0, o, q, 0o, \, & lub sufiksu o. Zatem np. dziesiętne `4143` można przestawić jako `10057_8`, `010057`, `"o"10057`, `"q"10057`, `0"o"10057`, `"\"10057`, `&10057` lub `10057"o"`.

Znane są kultury, w których funkcjonuje system oparty na bazie 8, biorący się zapewne z liczenia na palcach obu rąk z wyjątkiem kciuków, albo też na przerwach między palcami, choć dziś jest on skrajnie rzadki. Odnotowano go wśród plemion wiodących tradycyjny styl życia, mieszkających na Nowej Gwinei. System ósemkowy (a przynajmniej system z pomocniczą bazą `8` obok `4`) istniał w kalifornijskim języku juki i mógł też kiedyś istnieć w językach indoeuropejskich. Dowodzić tego ma postać liczebnika `9`, *(H1)neum̥, mającego mieć związek z przymiotnikiem *newos, ‘nowy’ (czyli ‘następujący po bazie 8’).

System szesnastkowy

System liczebników tysięczno-dziesiętny panuje w cywilizacji zachodniej, ale nie w Chinach. Tam bowiem liczba „dziesięć tysięcy” ma swoją własną, prostą nazwę. Można by ją przetłumaczyć jako „miriada”. „Sto tysięcy” to w konsekwencji „dziesięć miriad”.

Liczby w kręgu cywilizacji chińskiej zapisuje się stosownie do ich nazw, a zatem oddzielając przerwami cztery, a nie trzy kolejne cyfry. Dlatego „milion” (`10^6`) zapiszemy po chińsku nie jako `1` `000` `000`, ale jako `100` `0000`, co odzwierciedla nazwę tej liczby: „sto miriad”.

Oddzielanie od siebie cyfr binarnych co cztery zamiast co trzy pozycje, zbieżne z chińskim zapisem wielkich liczb, doprowadziło do przyjęcia systemu szesnastkowego, zwanego też heksadecymalnym. Obecnie system ten wyparł niemal zupełnie ósemkowy i panuje niepodzielnie w informatyce. System ten podobnie łatwo jak ósemkowy daje się konwertować na binarny, a zapis liczb jest jeszcze bardziej zwięzły. Wymaga jednak aż 16 cyfr. Innymi słowy, takie liczby jak 10, 13 czy 15 są w nim zapisywane pojedynczymi symbolami. W tym celu wykorzystuje się kolejne liczby alfabetu (małe lub duże), używane w funkcji cyfr szesnastkowych: `"a"_16 = 10_10`, `"b"_16 = 11_10`, `"c"_16 = 12_10`, `"d"_16 = 13_10`, `"e"_16 = 14_10`, `"f"_16 = 15_10`. Oczywiście „szesnaście”, będące bazą systemu, zapisywane jest jako `10`.

Liczby szesnastkowe oznacza się odpowiednim indeksem dolnym, ale w informatyce stosuje się także inne sposoby, m.in. dopisanie prefiksów 0x, \x, $ lub sufiksu h. Zatem np. dziesiętne `4143` można przestawić jako `102"f"_16`, `0"x"102"f"`, `"\x"102"f"`, `$102"f"` lub `102"fh"`.

Duże liczby w systemie szesnastkowym zapisuje się, oddzielając cyfry po cztery, licząc od prawej strony, jak liczby decymalne w zapisie chińskim. Np. `131 328_10 = 2 0100_16`, lub `3 805 184_10 = 3"a" 1000_16`.

Konwersja między systemami opartymi na bazach 2, 4, 8, 16

Między systemami dwójkowym, czwórkowym, ósemkowym i szesnastkowym można dokonywać łatwych konwersji. Zamianę najlepiej prowadzić przez system dwójkowy (jeśli liczba już nie jest w nim podana): zapis źródłowy zastępujemy dwójkowym, a ten następnie konwertujemy do żądanego. Możliwa jest też bezpośrednia konwersja między systemami czwórkowym a szesnastkowym. Pomocne może okazać się poniższe zestawienie.

baza | 2 4 8 16 | 10
  | 0 0   0   0   | 0
  | 1 1   1   1   | 1
  | 10 2   2   2   | 2
  | 11 3   3   3   | 3
  | 100 10   4   4   | 4
  | 101 11   5   5   | 5
  | 110 12   6   6   | 6
  | 111 13   7   7   | 7
  | 1000 20   10   8   | 8
  | 1001 21   11   9   | 9
  | 1010 22   12   a   | 10
  | 1011 23   13   b   | 11
  | 1100 30   14   c   | 12
  | 1101 31   15   d   | 13
  | 1110 32   16   e   | 14
  | 1111 33   17   f   | 15
               
Aby przeprowadzić konwersję liczby zapisanej w systemie
      czwórkowym ósemkowym szesnastkowym    
na system dwójkowy
należy każdą cyfrę danej liczby zastąpić
      dwiema trzema czterema    
cyframi dwójkowymi,
w razie potrzeby uzupełniając je z lewej strony zerami.
 
Aby przeprowadzić konwersję liczby dwójkowej na system
      czwórkowy ósemkowy szesnastkowy    
należy podzielić jej zapis na grupy złożone z
      dwóch trzech czterech    
cyfr, zaczynając od prawej, a następnie
zastąpić każdą grupę jedną cyfrą żądanego układu.

Np.:

`132331_4 = 1` `11` `10` `11` `11` `01_2 = 11110111101_2`

`11110111101_2` = `11` `110` `111` `101_2 = 3675_8`

`11110111101_2` = `111` `1011` `1101_2 = 7"bd"_16`

Niestety nie da się w podobnie łatwy sposób przekonwertować danej liczby na system dziesiętny; konwertowana liczba w tym systemie to `1981`.

Wynik ten otrzymamy, konwertując np. zapis szesnastkowy: `7*16^2 + 11*16 + 13 = 1792 + 176 + 13 = 1981`.

Systemy mniej typowe

W teorii można rozpatrywać systemy oparte na różnych bazach, np. 3 czy 11. Zasady ich przeliczania są analogiczne, jak w wypadku systemu dwójkowego, czwórkowego, ósemkowego i szesnastkowego. Poniżej wymienimy jedynie systemy, które służą do liczenia w językach naturalnych, stąd brak np. systemu trójkowego, który znajduje jedynie sztuczne zastosowanie w logice (Majewicz twierdzi, że system trójkowy czyli ternarny używany jest w niektórych językach indiańskich, jak coroado z Brazylii).

System piątkowy czyli kwinarny występuje dość rzadko wśród różnych kultur i języków mimo faktu, że ludzka dłoń zawiera pięć palców. Być może dawne centra rozpowszechnienia systemu piątkowego zostały dziś wyparte przez dominujący system dziesiętny. Skromne pozostałości znajdziemy wśród różnych plemion w Afryce i Oceanii. Majewicz wśród języków używających systemu piątkowego wymienia wschodnioindonezyjskie (rodzina austronezyjska) języki mamban (mambai?) i tukudede oraz afrykańskie: wolof i języki sudańskie. W językach Epi z Vanuatu liczebnik 5 brzmi luna, czyli ‘dłoń’, 10 – lua-luna ‘dwie dłonie’, 11 – lua-luna tai ‘dwie dłonie jeden’, 15 – tolu-luna ‘trzy dłonie’, 17 – tolu-luna lua ‘trzy dłonie dwa’.

Elementy systemu piątkowego znajdziemy w wielu językach Australii (np. gumatj, nunggubuyu, kuurn kopan noot) i niektórych językach obu Ameryk (kalifornijski luiseño i arawacki saraveca), przy czym prawdziwie piątkowy system opisano tylko w gumatj, gdzie używa się prostego liczebnika `25`.

Baza `5` jako pomocnicza obok głównej bazy `20` występuje w azteckim. Jeśli obok bazy `5` występują także `2` i `10`, system nazywamy bikwinarnym. Sytuacja taka występuje w wolof i khmerskim. Bikwinarne są też cyfry rzymskie, oznaczające `1`, `5`, `10`, `50`, `100`, `500` i `1000`. Podobny system występował w większości wersji abaka, w cyfrach kultury popielnicowej i w nacięciach używanych np. do liczenia dni przez więźniów. Także wiele systemów monetarnych używa systemu bikwinarnego.

System dwudziestkowy lub wigesimalny był kiedyś dość rozpowszechniony wśród ludzkich kultur, szczególnie tam, gdzie liczono, posługując się palcami u rąk i nóg. Na przykład cywilizacja Majów używała rozwiniętego systemu dwudziestkowego z pomocniczymi bazami `4` i `5`. Podobne systemy występują w nahuatl i kaktovik inupiaq.

System sześćdziesiątkowy lub seksagesimalny znany był w kulturze Sumerów, którym zawdzięczamy podział godziny na 60 minut i minuty na 60 sekund.

Konwersja między systemami opartymi na bazach 5, 8, 10, 12, 16, 20 i 60

W poniższej tabeli zebrano liczby, które są „okrągłe” (tzn. mają tylko jedną cyfrę znaczącą) w jednym z analizowanych systemów liczbowych, wraz z ich odpowiednikami w pozostałych systemach.

n5 n8 n10 n12 n16 n20 n60
1 1 1 1 1 1 1
2 2 2 2 2 2 2
3 3 3 3 3 3 3
4 4 4 4 4 4 4
10 5 5 5 5 5 5
11 6 6 6 6 6 6
12 7 7 7 7 7 7
13 10 8 8 8 8 8
14 11 9 9 9 9 9
20 12 10 a a a 10
21 13 11 b b b 11
22 14 12 10 c c 12
23 15 13 11 d d 13
24 16 14 12 e e 14
30 17 15 13 f f 15
31 20 16 14 10 g 16
32 21 17 15 11 h 17
33 22 18 16 12 i 18
34 23 19 17 13 j 19
40 24 20 18 14 10 20
44 30 24 20 18 14 24
100 31 25 21 19 15 25
110 36 30 26 1e 1a 30
112 40 32 28 20 1c 32
121 44 36 30 24 1g 36
130 50 40 34 28 20 40
143 60 48 40 30 28 48
200 62 50 42 32 2a 50
211 70 56 48 38 2g 56
220 74 60 50 3c 30 1ʹ00
224 100 64 54 40 34 1ʹ04
240 106 70 5a 46 3a 1ʹ10
242 110 72 60 48 3c 1ʹ12
300 113 75 63 4b 3g 1ʹ15
310 120 80 68 50 40 1ʹ20
314 124 84 70 54 44 1ʹ24
330 132 90 76 5a 4a 1ʹ30
341 140 96 80 60 4g 1ʹ36
400 144 100 84 64 50 1ʹ40
413 154 108 90 6c 58 1ʹ48
422 160 112 94 70 5c 1ʹ54
440 170 120 a0 78 60 2ʹ00
1000 175 125 a5 7d 65 2ʹ05
1003 200 128 a8 80 68 2ʹ08
1012 204 132 b0 84 6c 2ʹ12
1030 214 140 b8 8c 70 2ʹ20
1034 220 144 100 90 74 2ʹ24
1120 240 160 114 a0 80 2ʹ40
1201 260 176 128 b0 8g 2ʹ56
1210 264 180 130 b4 90 3ʹ00
1232 300 192 140 c0 9c 3ʹ12
1300 310 200 148 c8 a0 3ʹ20
1313 320 208 154 d0 a8 3ʹ28
1340 334 220 164 dc b0 3ʹ40
1344 340 224 168 e0 b4 3ʹ44
1430 360 240 180 f0 c0 4ʹ00
2000 372 250 18a fa ca 4ʹ10
2011 400 256 194 100 cg 4ʹ16
2020 404 260 198 104 d0 4ʹ20
2110 430 280 1b4 118 e0 4ʹ40
2123 440 288 200 120 e8 4ʹ48
2200 454 300 210 12c f0 5ʹ00
2240 500 320 228 140 g0 5ʹ20
2330 524 340 244 154 h0 5ʹ40
2420 550 360 260 168 i0 6ʹ00
3000 567 375 273 177 if 6ʹ15
3010 574 380 278 17c j0 6ʹ20
3014 600 384 280 180 j4 6ʹ24
3100 620 400 294 190 100 6ʹ40
3140 644 420 2b0 1a4 110 7ʹ00
3212 660 432 300 1b0 11c 7ʹ12
3243 700 448 314 1c0 128 7ʹ28
3410 740 480 340 1e0 140 8ʹ00
4000 764 500 358 1f4 150 8ʹ20
4022 1000 512 368 200 15c 8ʹ32
4130 1034 540 390 21c 170 9ʹ00
4301 1100 576 400 240 18g 9ʹ36
4400 1130 600 420 258 1a0 10ʹ00
10000 1161 625 441 271 1b5 10ʹ25
10300 1274 700 4a4 2bc 1f0 11ʹ40
10340 1320 720 500 2d0 1g0 12ʹ00
11033 1400 768 540 300 1i8 12ʹ48
11200 1440 800 568 320 200 13ʹ20
11424 1540 864 600 360 234 14ʹ24
12100 1604 900 630 384 250 15ʹ00
13000 1750 1000 6b4 3e8 2a0 16ʹ40
13013 1760 1008 700 3f0 2a8 16ʹ48
13044 2000 1024 714 400 2b4 17ʹ04
14102 2200 1152 800 480 2hc 19ʹ12
14300 2260 1200 840 4b0 300 20ʹ00
20000 2342 1250 882 4e2 32a 20ʹ50
20110 2400 1280 8a8 500 340 21ʹ20
20141 2420 1296 900 510 34g 21ʹ36
21230 2640 1440 a00 5a0 3c0 24ʹ00
22121 3000 1536 a80 600 3gg 25ʹ36
22314 3060 1584 b00 630 3j4 26ʹ24
22400 3100 1600 b14 640 400 26ʹ40
23403 3300 1728 1000 6c0 468 28ʹ48
24132 3400 1792 1054 700 49c 29ʹ52
24200 3410 1800 1060 708 4a0 30ʹ00
30000 3523 1875 1103 753 4df 31ʹ15
31000 3720 2000 11a8 7d0 500 33ʹ20
31143 4000 2048 1228 800 528 34ʹ08
33204 4400 2304 1400 900 5f4 38ʹ24
34100 4540 2400 1480 960 600 40ʹ00
40000 4704 2500 1544 9c4 650 41ʹ40
40220 5000 2560 1594 a00 680 42ʹ40
42200 5360 2800 1754 af0 700 46ʹ40
42231 5400 2816 1768 b00 70g 46ʹ56
44000 5670 3000 18a0 bb8 7a0 50ʹ00
44242 6000 3072 1940 c00 7dc 51ʹ12
100000 6065 3125 1985 c35 7g5 52ʹ05
100300 6200 3200 1a28 c80 800 53ʹ20
101303 6400 3328 1b14 d00 868 55ʹ28
102311 6600 3456 2000 d80 8cg 57ʹ36
103314 7000 3584 20a8 e00 8j4 59ʹ44
103400 7020 3600 2100 e10 900 1ʹ00ʹ00
110330 7400 3840 2280 f00 9c0 1ʹ04ʹ00
112000 7640 4000 2394 fa0 a00 1ʹ06ʹ40
112341 10000 4096 2454 1000 a4g 1ʹ08ʹ16

Konwersja innych liczb w różnych systemach liczbowych może być dokonana przy pomocy kalkulatora lub odpowiedniego programu komputerowego.

Systemy nietypowe

System szóstkowy lub senarny obecnie występuje bardzo rzadko. Zakłada się, że podstawa „sześć” oznaczała coś, co znajduje się poza pięcioma palcami, a więc całość, dłoń, pięść. Majewicz jako używające takiego systemu podaje afrykańskie języki (niger-kongo), jak balante (lub balanta, używany w Senegalu i Gwinei Bissau), bola, papel, niektóre języki papuaskie, jak kimaghama, kanum, kati, a także kalifornijskie wintu, nomlaki, patwin, maidu. Inne źródła podają także inne języki morehead-maro z południowej Nowej Gwinei, np. nambu, ndom lub kómnzo. W tym ostatnim system szóstkowy używany jest do rytualnego liczenia bulw jamu. Istnieją w nim odrębne nazwy dla potęg szóstki, aż do 66 (= 46 656). Jako używający systemu szóstkowego wspomina się też izolowany język tiwi z Australii, gdzie liczebniki 7–10 tworzone są od 6. Istnieje domniemanie, że system szóstkowy używany był w języku prauralskim, gdyż w języku tym można zrekonstruować tylko liczebniki 1–6. Wyższe zostały zapożyczone lub utworzone później w poszczególnych językach potomnych.

System siódemkowy lub septenarny prawdopodobnie nigdzie nie jest wykorzystywany samodzielnie, a jedynie w układzie mieszanym, najczęściej z systemem czwórkowym. Sugerowano, że system siódemkowy był wykorzystywany w arawackim języku palikúr, ale obecnie wydaje się to wątpliwe. Podobnie literatura nie potwierdza informacji Majewicza, że system siódemkowy występuje w czadyjskim języku somrai. Elementy systemu siódemkowego występują natomiast w niektórych systemach miar. Do dziś używamy tygodni, składających się z siedmiu dni. Starożytni Egipcjanie mierzyli długość w łokciach; jeden łokieć (52,35 cm) składał się z siedmiu dłoni, i dalej dłoń dzieliła się na cztery palce. Baskowie używali jednostki długości o nazwie cordel, liczącej 163,8362 m, która dzieliła się na 12 jednostek o nazwie gorapilla, a ta jednostka dzieliła się na 7 mniejszych, gizabete, zwanych też toesa lub estado (ok. 1,95 m). Z kolei jedna taka jednostka składała się z 7 stóp (bask. oin; 1 stopa baskijska to 27,8633 cm).

System dwudziestkowy czwórkowy z podsystemem szóstkowym opisano w językach sko z północnego wybrzeża Nowej Gwinei.

    `n^2` `n^3` `n^4` `n^5`   `2^n` `3^n` `4^n` `5^n`   `n!`
4   `2^2`         `2^2`          
6                       `3!`
8     `2^3`       `2^3`          
9   `3^2`           `3^2`        
16   `4^2`   `2^4`     `2^4`   `4^2`      
24                       `4!`
25   `5^2`               `5^2`    
27     `3^3`         `3^3`        
32         `2^5`   `2^5`          
36   `6^2`                    
49   `7^2`                    
64   `8^2` `4^3`       `2^6`   `4^3`      
81   `9^2`   `3^4`       `3^4`        
100   `10^2`                    
120                       `5!`
121   `11^2`                    
125     `5^3`             `5^3`    
128             `2^7`          
144   `12^2`                    
169   `13^2`                    
196   `14^2`                    
216     `6^3`                  
225   `15^2`                    
243         `3^5`     `3^5`        
256   `16^2`   `4^4`     `2^8`   `4^4`      
289   `17^2`                    
324   `18^2`                    
343     `7^3`                  
361   `19^2`                    
400   `20^2`                    
441   `21^2`                    
484   `22^2`                    
512     `8^3`       `2^9`          
529   `23^2`                    
576   `24^2`                    
625   `25^2`   `5^4`           `5^4`    
676   `26^2`                    
720                       `6!`
729   `27^2` `9^3`         `3^6`        
784   `28^2`                    
841   `29^2`                    
900   `30^2`                    
961   `31^2`                    
1000     `10^3`                  
1024   `32^2`     `4^5`   `2^10`   `4^5`      

    `n^2` `n^3` `n^4` `n^5`   `2^n` `3^n`   `n!` `n!!`   `7n` `11n` `13n` `17n` `19n` `23n` `29n`
4   `2^2`         `2^2`                        
6                   `3!`                  
8     `2^3`       `2^3`       `4!!`                
9   `3^2`           `3^2`                      
15                     `5!!`                
16   `4^2`   `2^4`     `2^4`                        
21                         `7*3`            
24                   `4!`                  
25   `5^2`                                  
27     `3^3`         `3^3`                      
32         `2^5`   `2^5`                        
33                           `11*3`          
35                         `7*5`            
36   `6^2`                                  
39                             `13*3`        
48                     `6!!`                
49   `7^2`                     `7*7`            
51                               `17*3`      
55                           `11*5`          
57                                 `19*3`    
64   `8^2` `4^3`       `2^6`                        
65                             `13*5`        
69                                   `23*3`  
77                         `7*11` `11*7`          
81   `9^2`   `3^4`       `3^4`                      
85                               `17*5`      
87                                     `29*3`
91                         `7*13`   `13*7`        
95                                 `19*5`    
100   `10^2`                                  
105                     `7!!`                
115                                   `23*5`  
119                         `7*17`     `17*7`      
120                   `5!`                  
121   `11^2`                       `11*11`          
125     `5^3`                                
128             `2^7`                        
133                         `7*19`       `19*7`    
143                           `11*13` `13*11`        
144   `12^2`                                  
145                                     `29*5`
161                         `7*23`         `23*7`  
169   `13^2`                         `13*13`        
187                           `11*17`   `17*11`      
196   `14^2`                                  
203                         `7*29`           `29*7`
209                           `11*19`     `19*11`    
216     `6^3`                                
217                         `7*31`            
221                             `13*17` `17*13`      
225   `15^2`                                  
243         `3^5`     `3^5`                      
247                             `13*19`   `19*13`    
253                           `11*23`       `23*11`  
256   `16^2`   `4^4`     `2^8`                        
259                         `7*37`            
287                         `7*41`            
289   `17^2`                           `17*17`      
299                             `13*23`     `23*13`  
301                         `7*43`            
319                           `11*29`         `29*11`
323                               `17*19` `19*17`    
324   `18^2`                                  
329                         `7*47`            
341                           `11*31`          
343     `7^3`                   `7*7*7`            
361   `19^2`                             `19*19`    
371                         `7*53`            
377                             `13*29`       `29*13`
384                     `8!!`                
391                               `17*23`   `23*17`  
400   `20^2`                                  
403                             `13*31`        
407                           `11*37`          
413                         `7*59`            
427                         `7*61`            
437                                 `19*23` `23*19`  
441   `21^2`                                  
451                           `11*41`          
469                         `7*67`            
473                           `11*43`          
481                             `13*37`        
484   `22^2`                                  
493                               `17*29`     `29*17`
497                         `7*71`            
511                         `7*73`            
512     `8^3`       `2^9`                        
517                           `11*47`          
527                               `17*31`      
529   `23^2`                               `23*23`  
533                             `13*41`        
539                         `7*7*11` `11*7*7`          
551                                 `19*29`   `29*19`
553                         `7*79`            
559                             `13*43`        
576   `24^2`                                  
581                         `7*83`            
583                           `11*53`          
589                                 `19*31`    
611                             `13*47`        
623                         `7*89`            
625   `25^2`   `5^4`                              
629                               `17*37`      
637                         `7*7*13`   `13*7*7`        
649                           `11*59`          
667                                   `23*29` `29*23`
671                           `11*61`          
676   `26^2`                                  
679                         `7*97`            
689                             `13*53`        
697                               `17*41`      
703                                 `19*37`    
707                         `7*101`            
713                                   `23*31`  
720                   `6!`                  
721                         `7*103`            
729   `27^2` `9^3`         `3^6`                      
731                               `17*43`      
737                           `11*67`          
749                         `7*107`            
763                         `7*109`            
767                             `13*59`        
779                                 `19*41`    
781                           `11*71`          
784   `28^2`                                  
791                         `7*113`            
793                             `13*61`        
799                               `17*47`      
803                           `11*73`          
817                                 `19*43`    
841   `29^2`                                 `29*29`
847                         `7*11*11` `11*7*11`          
851                                   `23*37`  
869                           `11*79`          
871                             `13*67`        
889                         `7*127`            
893                                 `19*47`    
899                                     `29*31`
900   `30^2`                                  
901                               `17*53`      
913                           `11*83`          
917                         `7*131`            
923                             `13*71`        
931                         `7*7*19`            
943                                   `23*41`  
945                     `9!!`                
949                             `13*73`        
959                         `7*137`            
961   `31^2`                                  
973                         `7*139`            
979                           `11*89`          
989                                   `23*43`  
1000     `10^3`                                
1001                         `7*11*13` `11*7*13` `13*7*11`        
1003                               `17*59`      
1007                                 `19*53`    
1024   `32^2`     `4^5`   `2^10`                        

Przypisy

  1. Alfred F. Majewicz, Języki świata i ich klasyfikowanie, PWN, Warszawa 1989, str. 227.

Część poprzednia Spis treści Część następna