Pozicioni brojevni sistemi
Uvod
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:
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'). :)
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:
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"):
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 |
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:
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 ....
.... 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"):
(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 0, 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:
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):
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"):
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 |
.... 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:
- pre većih cifara mogu se pojaviti samo cifre 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:
- Brojevi između 10 i 100:
- Brojevi između 100 i 1000:
- 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). :)