Preskoči na vsebino

Številski sistemi

V računalništvu se glede na potrebe uporabljajo različni številski sistemi. Najpogosteje se srečujemo z naslednjimi:

  • Dvojiški sistem (binarni): uporablja samo dve števki, 0 in 1. To je osnovni sistem, ki ga računalniki uporabljajo za shranjevanje in obdelavo podatkov.
  • Osmiški sistem (oktalni): uporablja osem števk, od 0 do 7. Pogosto se uporablja kot bolj kompaktna oblika zapisa binarnih števil, saj vsaka oktalna števka predstavlja tri binarne števke.
  • Desetiški sistem: uporablja deset števk, od 0 do 9. To je sistem, ki ga uporabljamo v vsakdanjem življenju.
  • Šestnajstiški sistem (heksadecimalni): uporablja šestnajst števk, od 0 do 9 in od A do F (kjer A predstavlja 10, B predstavlja 11, ..., F predstavlja 15). Ta sistem se pogosto uporablja v računalništvu, saj vsaka šestnajstiška števka predstavlja štiri binarne števke, kar omogoča bolj kompaktno predstavitev binarnih števil.

Na maturi od vas pričakujejo, da boste poznali vsaj naštete številske sisteme in njihove pogoste uporabe, znali med njimi pretvarjati, z njimi računati in razumeli osnove preverjanja pravilnosti zapisov.

Kje se uporabljajo?

Številski sistemUporabaPrimer
Dvojiški (binarni)Shranjevanje in obdelava podatkov v računalniku1010 (10 v desetiškem)
Osmiški (oktalni)Kompaktna oblika zapisa binarnih števil, UNIX pravice/dovoljenja12 (10 v desetiškem)
DesetiškiVsakodnevna uporaba, splošno programiranje42
Šestnajstiški (heksadecimalni)Kompaktnejši zapis binarnih števil, barvno kodiranje, IPv6 nasloviA (10 v desetiškem)
RGB: #rrggbb (
#ff0000)
IPv6: 2001:db8::ff00:42:8329

Pretvarjanje med številskimi sistemi

Pretvorbe med različnimi številskimi sistemi vse sledijo istemu osnovnemu principu: deljenje z osnovo sistema (za pretvorbo v nižji sistem) ali množenje z osnovo sistema (za pretvorbo v višji sistem). Spodaj so opisani postopki za pretvorbo med desetiškim in dvojiškim sistemom.

Pri pretvorbi med dvojiškim ter osmiškim ali šestnajstiškim sistemom pa lahko uberemo bližnjico, saj vsaka oktalna števka predstavlja tri binarne števke, vsaka šestnajstiška števka pa predstavlja štiri binarne števke. Podoben trik za katero koli drugo osnovo, ki je potenca števila 2, lahko uporabimo isti trik.

Desetiški v dvojiški

Za pretvorbo desetiškega števila v dvojiški sistem delimo število z 2 in zapisujemo ostanke, dokler ne pridemo do 0. Ostanki, zapisani od spodaj navzgor, tvorijo dvojiško število.

Primer: Pretvorimo desetiško število 42 v dvojiški sistem:

42/2=21ost. 021/2=10ost. 110/2=5ost. 05/2=2ost. 12/2=1ost. 01/2=0ost. 1=101010(2)\begin{align*} 42 / 2 &= 21 & \text{ost. } 0 \\ 21 / 2 &= 10 & \text{ost. } 1 \\ 10 / 2 &= 5 & \text{ost. } 0 \\ 5 / 2 &= 2 & \text{ost. } 1 \\ 2 / 2 &= 1 & \text{ost. } 0 \\ 1 / 2 &= 0 & \text{ost. } 1 & = 101010_{(2)} \end{align*}

Dvojiški v desetiški

Za pretvorbo dvojiškega števila v desetiški sistem pomnožimo vsako števko z 2 na potenco njenega položaja (začnemo z 0 od desne proti levi) in seštejemo rezultate.

Primer: Pretvorimo dvojiško število 101010 nazaj v desetiški sistem:

101010××××××2524232221203208020=42(10)\begin{matrix} 1 & 0 & 1 & 0 & 1 & 0 \\ \times & \times & \times & \times & \times & \times \\ 2^5 & 2^4 & 2^3 & 2^2 & 2^1 & 2^0 \\ \hline 32 & 0 & 8 & 0 & 2 & 0 & = 42_{(10)} \\ \end{matrix}

Dvojiški v osmiški

Za pretvorbo dvojiškega števila v osmiški sistem združimo binarne števke v skupine po tri, začenši z desne strani. Vsaka skupina treh binarnih števk se nato pretvori v eno oktalno števko.

Primer: Pretvorimo dvojiško število 101010 v osmiški sistem:

101010(2)52(8)\begin{matrix} 1 0 1 & 0 1 0 & _{(2)} \\ 5 & 2 & _{(8)} \\ \end{matrix}

Dvojiški v šestnajstiški

Za pretvorbo dvojiškega števila v šestnajstiški sistem združimo binarne števke v skupine po štiri, začenši z desne strani. Vsaka skupina štirih binarnih števk se nato pretvori v eno šestnajstiško števko.

Primer: Pretvorimo dvojiško število 101010 v šestnajstiški sistem:

00010101(2)15(16)\begin{matrix} 0001 & 0101 & _{(2)} \\ 1 & 5 & _{(16)} \\ \end{matrix}

Računanje v dvojiškem sistemu

Računanje v dvojiškem sistemu sledi podobnim pravilom kot v desetiškem sistemu, vendar z upoštevanjem, da so možne števke samo 0 in 1. Osnovne operacije vključujejo seštevanje, odštevanje, množenje in deljenje.

Seštevanje

Pri seštevanju dvojiških števil seštejemo števke na istem položaju, pri čemer upoštevamo prenos, če je vsota 2 ali več.

Primer: Seštejmo dvojiški številki 1010 in 1101:

1010=10(10)+ 11101=13(10)10111=23(10)\begin{matrix} & & 1 & 0 & 1 & 0 & = 10_{(10)} \\ + & \space_1 & 1 & 1 & 0 & 1 & = 13_{(10)} \\ \hline & 1 & 0 & 1 & 1 & 1 & = 23_{(10)} \\ \end{matrix}

Odštevanje

Za odštevanje dvojiških števil se pogosto uporablja metoda dvojiškega komplementa, saj omogoče mogoča enostavno izvajanje odštevanja, saj lahko namesto odštevanja števila A od števila B izvedemo seštevanje števila B in dvojiškega komplementa števila A.

Množenje in deljenje

Množenje in deljenje v dvojiškem sistemu se izvaja podobno kot v desetiškem sistemu, vendar z upoštevanjem, da so možne števke samo 0 in 1. Pri množenju seštejemo premike in pri deljenju izvajamo ponavljajoče se odštevanje.

Primer: Množenje dvojiških številk 1010 in 101:

1010=10(10)×101=5(10)1010+0000+1010110010=50(10)\begin{matrix} & & & 1 & 0 & 1 & 0 & = 10_{(10)} \\ \times & & & & 1 & 0 & 1 & = 5_{(10)} \\ \hline & & & 1 & 0 & 1 & 0 \\ + & & 0 & 0 & 0 & 0 \\ + & 1 & 0 & 1 & 0 \\ \hline & 1 & 1 & 0 & 0 & 1 & 0 & = 50_{(10)} \\ \end{matrix}

Preverjanje pravilnosti zapisov

Najbolj osnovne metode preverjanja pravilnosti zapisov v binarnem sistemu so prečna/vzdolžna pariteta in kontrolna vsota.

  • Prečna pariteta: Preverja se, ali je število 1 v vrstici ali stolpcu sodo ali liho. Če je pariteta sodo, mora biti število 1 sodo; če je pariteta liho, mora biti število 1 liho.
  • Vzdolžna pariteta: Podobno kot prečna pariteta, vendar se preverja vzdolž stolpcev namesto vrstic.
  • Kontrolna vsota: Sešteje se število 1 v vrstici ali stolpcu in se preveri, ali je vsota deljiva z določenim številom (npr. 2 za sodo/lihost).

Zapisovanje negativnih in decimalnih števil

Negativna števila

Za predstavitev negativnih števil v dvojiškem sistemu se uporablja dvojiški komplement. V tem zapisu prvo števko (najbolj levo) imenujemo predznak, kjer 0 pomeni pozitivno število, 1 pa negativno število. To pomeni da lahko z dvojiškim komplementom predstavimo števila od 2(n1)-2^{(n-1)} do 2(n1)12^{(n-1)}-1, kjer je nn število bitov (8 bitni zapis torej lahko predstavi števila od 128-128 do 127127).

Dvojiški komplement števila se izračuna tako, da najprej izračunamo eniški komplement (zamenjamo 0 z 1 in 1 z 0) in nato dodamo 1.

Za primer izračunajmo dvojiški komplement števila 00001010=10(10)00001010 = 10_{(10)} v 8-bitnem zapisu:

  1. Eniški komplement: 1111010111110101
  2. Dodamo 1: 11110101+1=11110110=10(10)11110101 + 1 = 11110110 = -10_{(10)}

Decimalna števila

Decimalna števila se lahko v računalništvu predstavljajo na različne načine, odvisno od potreb natančnosti in obsega. Dva najpogostejša načina sta fiksna vejica in plavajoča vejica.

Fiksna vejica: Decimalna vejica je na fiksnem mestu, kar pomeni, da je število decimalnih mest določeno vnaprej.

Torej bi lahko zapisali število 3.25(10)3.25_{(10)} kot 11.01(2)11.01_{(2)} oz. 1101(2)1101_{(2)}, kjer je decimalna vejica postavljena med drugo in tretjo števko od desne proti levi. V tem primeru bi imeli dve decimalni mesti, kar pomeni da je najmanjša možna vrednost 0.25(10)0.25_{(10)}.

Plavajoča vejica: Decimalna vejica se lahko premika, kar omogoča predstavitev širšega razpona števil. Število se običajno zapisuje v obliki (1)p×m×2e(-1)^p \times m \times 2^e, kjer je pp predznak (spet 0 za pozitivno in 1 za negativno), mm mantisa in ee eksponent. (Več: IEEE 754 standard)

Primer zapisa v 32-bitni plavajoči vejici:

Primer zapisa v 32-bitni plavajoči vejici