Pozicioni brojevni sistemi

U opštem smislu, pojam 'brojevni sistem' predstavlja sistem za određivanje vrednosti brojeva uz korišćenje numeričkih simbola, tj. 'cifara', i pravila za nadovezivanje cifara.

Pozicioni brojevni sistem je brojevni sistem u kome uticaj određene cifre na ukupnu vrednost broja zavisi, ne samo od osnovne vrednosti cifre, već, i od pozicije cifre u broju. *

Tokom istorije, u različitim kulturama, pojavljivali su se razni brojevni sistemi (pozicioni ili drugi), i sa sobom su donosili različite metode za zapisivanje i kombinovanje simbola preko kojih se definišu vrednosti brojeva.

Neki od sistema su krajnje idiosinkratični (ali svakako vrlo zanimljivi), neki su samo "malo neobični", mnogi su i danas u upotrebi ** (na određenim mestima i u određenim okolnostima), ali, pozicioni brojevni sistemi (koji predstavljaju glavnu temu članka), pokazali su se kao najpraktičniji.

Pozicija cifre i vrednost pozicije

Pozicija cifre predstavlja mesto koje cifra zauzima u broju (u smislu "udaljenosti od cifre jedinica"), a ukupna vrednost pozicije (što je za trenutnu diskusiju mnogo bitnije), određena je:

  • samom pozicijom
  • konkretnom cifrom koja se na datoj poziciji pojavljuje

Iako verujemo da je i mlađim čitaocima prethodna definicija dobro poznata (starijima pogotovo), podsetićemo se ukratko, preko primera, kako sve funkcioniše u praksi.

Shodno svakodnevnom iskustvu sa brojevima, znamo, da - iako se brojevi 430 * i 340 sastoje od istih cifara - njihova vrednost se ne određuje prostim sabiranjem cifara, već se pri određivanju vrednosti uzima u obzir i pozicija koju svaka od cifara zauzima u zapisu broja.

Cifra '4' u prvom broju ne označava vrednost 4, već, u praktičnom smislu - broj 400 (koji se dobija kao umnožak osnovne vrednosti pozicije - koja u ovom slučaju iznosi 100, i cifre 4), dok, u drugom broju, cifra '4' praktično ima vrednost 40.

Najprostije rečeno, u pozicionom brojevnom sistemu 'nije svejedno' na kojoj poziciji se cifra nalazi, vrednost pozicije dobija se kao umnožak osnovne vrednosti pozicije i vrednosti cifre na datoj poziciji (ili drugačije: ista cifra, na različitim pozicijama - ima različitu "težinu"), a ukupna vrednost broja, dobija se sabiranjem vrednosti svih pozicija.

Na primer:

		
654 = 600 + 50 + 4
    = 6 * 100 + 5 * 10 + 4 * 1
		
	
Slika 1. - Primer izračunavanja vrednosti trocifrenog broja.

Dekadni brojevni sistem

Dekadni brojevni sistem ima osnovu 10, koristi cifre 0, 1, 2, 3, 4, 5, 6, 7, 8 i 9 i (naravno), u pitanju je brojevni sistem sa kojim su čitaoci najbolje upoznati (iz razloga što svi koristimo dekadni brojevni sistem svakodnevno .... 'bar pomalo'). :)

Struktura dekadnog broja
Slika 2. - Struktura dekadnog broja: pozicije su stepeni broja 10, a ukupna vrednost broja se dobija sabiranjem vrednosti pojedinačnih pozicija.

U pozicionim brojevnim sistemima, osnova (pojam koji smo uveli u prethodnom pasusu), označava ukupan broj cifara u datom sistemu i (posredno), najveću vrednost koja se može zapisati upotrebom samo jedne cifre - u tom smislu da je navedena vrednost za 1 manja od osnove.

Vrednosti pozicija predstavljaju umnoške osnove, što, u slučaju dekadnog sistema, znači - umnoške broja 10: 1, 10, 100, 1000, 10000 .....

Međutim, važno je napomenuti i to da pozicija 'na prvom mestu sa desne strane', ima vrednost 1 u svakom pozicionom brojevnom sistemu * (s tim da ostale pozicije, u drugim sistemima, imaju (naravno) vrednosti koje odgovaraju umnošcima broja koji predstavlja osnovu datog sistema: 2, 8 ili 16 i sl).

Binarni brojevni sistem

Binarni brojevni sistem ima osnovu 2, koristi cifre 0 i 1, a pozicije predstavljaju stepene broja dva: 1, 2, 4, 8, 16, 32, 64, 128 ....

Ukupna vrednost binarnog broja dobija se sabiranjem uključenih pozicija:

Struktura binarnog broja
Slika 3. - Struktura binarnog broja: pozicije su stepeni broja 2, a ukupna vrednost broja se dobija sabiranjem vrednosti pojedinačnih pozicija.

Tipičan postupak pretvaranja dekadnog broja u binarni, podrazumeva deljenje sa 2, zapisivanje ostataka i, na kraju (u praktičnom smislu), čitanje ostataka "unazad" (ili, "odozdo-nagore"):

		
----------------
147 / 2 = 73 (1)
73  / 2 = 36 (1)
36  / 2 = 18 (0)
18  / 2 =  9 (0)
9   / 2 =  4 (1)
4   / 2 =  2 (0)
2   / 2 =  1 (0)
1   / 2 =  0 (1)
----------------
             ^^^
    >>> 10010011
----------------
		
	
Slika 4. - Postupak pretvaranja dekadnog broja u binarni.

Binarni brojevni sistem koristi se unutar logičkih kola računara, iz razloga koje smo prethodno pominjali (i detaljno objasnili u zasebnom članku).

Heksadekadni brojevni sistem

Heksadekadni brojevni sistem ima osnovu 16 i koristi 16 cifara čije su vrednosti navedene u sledećoj tabeli:

cifra vrednost
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
cifra vrednost
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
Slika 5. Cifre u heksadekadnom brojevnom sistemu.

U heksadekadnom sistemu, pozicije cifara predstavljaju stepene broja 16: 1, 16, 256, 4096, 65536 ....

Vrednost heksadekadnog broja dobija se sabiranjem vrednosti pozicija, a vrednost svake od pozicija, dobija se množenjem vrednosti cifre, sa stepenom broja 16 koji odgovara poziciji:

Struktura heksadekadnog broja
Slika 6. - Struktura heksadekadnog broja: pozicije su stepeni broja 16, a ukupna vrednost broja se dobija sabiranjem vrednosti pojedinačnih pozicija.

Heksadekadni brojevni sistem ima dve osobine zbog kojih je stekao popularnost u IT industriji:

  • veliki brojevi mogu se predstaviti lako, na malom prostoru
  • često se koristi za pojednostavljeno predstavljanje binarnih brojeva

Za pretvaranje binarnog broja u heksadekadni ....

Pretvaranje binarnog broja u heksadekadni
Slika 7. - Pretvaranje binarnog broja u heksadekadni (i obrnuto).

.... potrebno je prvo (posmatrajući broj zdesna-nalevo): definisati grupe od četiri cifre, * i potom svaku od grupa zameniti heksadekadnom cifrom koja odgovara vrednosti date grupe:

  • 1010(2) = 10(10) = A(16)
  • 1110(2) = 14(10) = E(16)
  • 0001(2) = 1(10) = 1(16).

Pretvaranje heksadekadnog broja u binarni, ** funkcioniše po istom principu - u obrnutom smeru (svaka cifra u heksadekadnom zapisu redom se zamenjuje odgovarajućim četvorocifrenim binarnim zapisom).

Tipičan postupak pretvaranja dekadnog broja u heksadekadni, vrlo je sličan postupku za pretvaranje dekadnih brojeva u binarne, i podrazumeva deljenje sa 16, zapisivanje ostataka i, na kraju (u praktičnom smislu), čitanje ostataka "unazad" (ili, "odozdo-nagore"):

		
-----------------
619 / 16 = 38 (B)
38  / 16 = 2  (6)
2   / 16 = 0  (2)
-----------------
              ^^^
          >>> 26B
-----------------
		
	
Slika 8. - Postupak pretvaranja dekadnog broja u heksadekadni.

(U prvom deljenju na gornjoj slici ostatak je 11, ali, u heksadekadnom sistemu, vrednost 11 iz dekadnog sistema ne zapisuje se kao "11", već kao "B".)

Oktalni brojevni sistem (osnova 8), koji se i dalje povremeno koristi (ali, sve ređe), * ostavili smo za kraj diskusije o pozicionim brojevnim sistemima. **

Oktalni brojevni sistem

Oktalni brojevni sistem ima osnovu 8 i koristi cifre 1, 2, 3, 4, 5, 6 i 7.

Pozicije cifara predstavljaju stepene broja 8: 1, 8, 64, 512, 4096, 32768 ....

Vrednost oktalnog broja dobija se (kao i u ostalim sistemima), sabiranjem vrednosti pozicija, a vrednost svake pozicije, dobija se - po sada već dobro poznatom sistemu - množenjem vrednosti cifre (na određenoj poziciji), sa odgovarajućim stepenom broja 8:

Struktura oktalnog broja
Slika 9. - Struktura oktalnog broja: pozicije su stepeni broja 8, a ukupna vrednost broja se dobija sabiranjem vrednosti pojedinačnih pozicija.

Pretvaranje binarnih brojeva u oktalne (i oktalnih u binarne), obavlja se po postupcima koji su vrlo slični postupcima koji su prikazani u odeljku o heksadekadnim brojevima (s tim što se ovoga puta susrećemo sa grupama od tri binarne cifre):

Pretvaranje binarnog broja u oktalni
Slika 10. - Pretvaranje binarnog broja u oktalni (i obrnuto).

Tipičan postupak za pretvaranje dekadnog broja u oktalni, takođe je idejno sličan postupcima iz prethodnih odeljaka i podrazumeva deljenje sa 8 (odnosno, deljenje sa osnovom), zapisivanje ostatka i, na kraju (kao i u prethodna dva slučaja), čitanje ostataka "unazad" (to jest, "odozdo-nagore"):

		
-----------------
700 / 8 = 87 (4)
87  / 8 = 10 (7)
10  / 8 = 1  (2)
1   / 8 = 0  (1)
-----------------
              ^^^
         >>> 1274
-----------------
		
	
Slika 11. - Postupak pretvaranja dekadnog broja u oktalni.

Pri navođenju (i opisivanju) pozicionih brojevnih sistema, poštovali smo redosled "po važnosti" i (kao što je već navedeno), može se reći da oktalni brojevni sistem ima najmanji praktični značaj u sadašnjem trenutku, za razliku od "starijih vremena", kada su 6-bitni, 12-bitni i 24-bitni računari bili sasvim uobičajena pojava, * a oktalni brojevni sistem je predstavljao ekonomičan način za prikaz podataka na takvim sistemima (koje iz sadašnje perspektive možemo smatrati pomalo "idiosinkratičnim").

Međutim, navešćemo i jedan primer upotrebe oktalnog brojevnog sistema u "modernim okolnostima" (nešto što starijim i iskusnijim čitaocima može biti zanimljivo već u ovom trenutku): na Linux-u (i drugim UNIX-olikim operativnim sistemima), oktalni brojevni sistem često se koristi za dodelu privilegija korisnicima datoteka i direktorijuma.

Za kraj, osvrnućemo se ukratko na najpoznatiji nepozicioni brojevni sistem, sa kojim je većina čitalaca (verujemo), dobro upoznata.

Kratak osvrt na rimske brojeve

Kao što smo na početku nagovestili, rimski brojevni sistem spada u kategoriju "starinskih" nepozicionih brojevnih sistema, i reklo bi se da je u pitanju najupečatljiviji primer svoje kategorije.

Rimski brojevi održali su se do današnjih dana i pri tom se i dalje koriste (ili, bar - "pojavljuju"), u različitim okolnostima.

U rimskom brojevnom sistemu koristi se sedam cifara:

cifra vrednost
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
Slika 12. Cifre u rimskom brojevnom sistemu.

.... i svaka od cifara ima fiksnu vrednost, koja ne zavisi od pozicije u broju.

Međutim - cifre se (ipak) ne smeju ređati "bilo kako".

Vrednost broja se formira sabiranjem cifara (koje u većini situacija praktično možemo shvatiti kao samostalne brojeve), prema sledećim pravilima:

  • veće cifre (osim u slučaju koji ćemo naknadno navesti), zapisuju se pre manjih (XII = 12 = 10 + 1 + 1; LXV = 65 = 50 + 10 + 5)
  • uzastopna pojava iste cifre podrazumeva sabiranje, s tim da se cifre V, L i D ne ponavljaju, iz očiglednih razloga (III = 3 = 1 + 1 + 1)
  • cifre I, X, C i M (koje se smeju ponavljati), u zapisu se mogu uzastopno pojaviti najviše tri puta (III = 3, XXX = 30, ali, brojevi 4, 40 i sl, ne zapisuju se preko četiri uzastopne cifre)
  • pojava manje cifre posle veće, podrazumeva sabiranje (VI = 6, VII = 7, LX = 60, CLV = 155 i sl)
  • pojava manje cifre pre veće, podrazumeva oduzimanje (IV = 4 - "jedan manje od pet" ; IX = 9 - "jedan manje od deset"), a takvo oduzimanje podleže dodatnim pravilima:
    • cifre koje se mogu pojaviti pre većih cifara su: I, X i C (praktično - stepeni broja 10)
    • pri pojavi manje cifre pre veće, razlika između dve cifre - u smislu pozicije koje cifre zauzimaju u gore prikazanoj tabeli cifara - može biti najviše 2:
      • I se može pojaviti pre V i X, ali, ne može se pojaviti pre L, C, D ili M (na primer: IX je 9, ali, IL nije 49)
      • X se može pojaviti pre L i C, ali, ne može se pojaviti pre D ili M (na primer: XC je 90, ali, XM nije 990)
      • C se može pojaviti pre D ili M
    • manje cifre koje se u zapisu pojavljuju pre većih, ne mogu se ponavljati (na primer, zapisi kao što su "IIX", "XXM" i sl. - nisu dozvoljeni)
    • kada se manja cifra pojavi između dve veće istovetne cifre, operacija oduzimanja obavlja se pre sabiranja (CXC = 100 + (100 - 10) = 190)

Pogledajmo i primere, koji oslikavaju prethodno navedena pravila ....

- Brojevi od 1 do 10:

		
I     (1  = 1)
II    (2  = 1 + 1)
III   (3  = 1 + 1 + 1)
IV    (4  = 5 - 1)
V     (5  = 5)
VI    (6  = 5 + 1)
VII   (7  = 5 + 1 + 1)
VIII  (8  = 5 + 1 + 1 + 1)
IX    (9  = 10 - 1)
X     (10 = 10) 
		
	
Slika 13. - Rimski brojevi od 1 do 10.

- Brojevi između 10 i 100:

		
XIV     (14 = 10 + (5 - 1))
XXI     (21 = 10 + 10 + 1)
XXVIII  (28 = 10 + 10 + 5 + 1 + 1 + 1)
XXIX    (29 = 10 + 10 + (10 - 1))
XLVIII  (48 = (50 - 10) + 5 + 1 + 1 +1)
XLVIX   (49 = (50 - 10) + (10 - 1))
LIII    (53 = 50 + 1 + 1 + 1)
LXXII   (72 = 50 + 10 + 10 + 1 + 1)
XCIV    (94 = (100 - 10) + (5 - 1))
		
	
Slika 14. - Rimski brojevi između 10 i 100.

- Brojevi između 100 i 1000:

		
CIX    (109 = 100 + (10 - 1))
CXLIV  (144 = 100 + (50 - 10) + (5 - 1))
CLII   (152 = 100 + 50 + 1 + 1)
CICII  (192 = 100 + (100 - 10) + 1 + 1)
CDXCI  (491 = (500 - 100) + (100 - 10) + 1)
DXCI   (591 = 500 + (100 - 10) + 1)
CMLIV  (954 = (1000 - 100) + 50 + (5 - 1))
		
	
Slika 15. - Rimski brojevi između 100 i 1000.

- Brojevi preko 1000:

		
MII          (1002 = 1000 + 1 + 1)
MCDIV        (1404 = 1000 +
                     (500 - 100) +
                     (5 - 1)
             )
MDCCCLXXXIV  (1884 = 1000 + 500 +
                     100 + 100 + 100 + 
                     50 + 10 + 10 + 10 +
                     (5 - 1)
             )
MCMXC        (1990 = 1000 +
                     (1000 - 100) +
                     (100 - 10)
             )
MMMCMXCIX    (3999 = 1000 + 1000 + 1000 +
                     (1000 - 100) +
                     (100 - 10) +
                     (10 - 1)
             )
		
	
Slika 16. - Rimski brojevi preko 1000.

Poslednja vrednost koju smo prikazali, ujedno je i najveća vrednost koja se standardno može prikazati preko rimskih brojeva (može se reći da stari Latini nisu previše marili za (pre)velike brojeve). :)

Napomena: Tekstovi i slike na sajtu www.skola-programiranja.rs (osim u slučajevima pojedinih fotografija, gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta www.skola-programiranja.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo korišćenje u komercijalne svrhe, bez eksplicitnog odobrenja autora i Računarskog centra SystemPro. ©SystemPro d.o.o. novembar 2019.
Autor članka Nikola Vukićević Za web portal www.skola-programiranja.rs Preuzeto sa sajta www.codeblog.rs uz odobrenje autora
Podelite sa prijateljima: