Ma koliko ljudima izgledao podesan, decimalni brojni sistem je krajnje neprikladan sa aspekta računarske tehnike. Ovo je, pre svega, zbog toga što ne postoje procesi sa 10 jasno odvojenih(diskretnih) stanja. Međutim, postoji niz procesa koji se može definisati sa dva stanja: na primer, kroz provodnik teče struja(stanje 1) ili ne teče (stanje 0) ili je elektromagnetna sklopka uključena ili isključena. Ovakvi procesi se mogu opisati binarnim brojnim sistemom koji ima osnovu b=2 i samo dve cifre: 0 i 1. S obzirom na to da je rad računara zasnovan na logičkim, bistabilnim elementima, ovaj brojni sistem se koristi za internu reprezentaciju brojeva u računaru.
$V=\sum_{i=1}^{n}a_{i}2^{i-1}$
Tako, na primer, broj 2579decimalnog brojnog sistema u binarnom sistemu ima oblik:
101000010011 = 1x211+0x210+1x29+0x28+0x27+0x26+0x25+1x24+0x23+0x22+1x21+1x20
Može se reći da je broj 101000010011 binarni ekvivalent decimalnog broja 2579, što se obično piše kao:
1010000100112 = 257910
Primer na slici 1 prikazuje reprezentaciju binarnog broja 1101 čiji je ekvivalent u decimalnom brojnom sistemu broj 13. Sistem dodavanja težine poziciji je isti kao i decimalnom brojnom sistemu, tako da težine rastu gledajući s desna u levo. Iz ovog primera se vidi da je za zapis broja u binarnom brojnom sistemu potreban veći broj cifara nego u decimalnom sistemu. Uočava se, takođe, da je zbog čovekove naviknutosti na decimalni sistem binarni zapis neprikladan za čoveka. Ovo je posebno očigledno kada se radi sa velikim brojevima. Zbog toga se u računarskoj tehnici, a naročito u programiranju, češće koristi heksadecimalni brojni sistem.
Kako se konverzija iz binarnog u decimalni brojni sistem zasniva na množenju, gde smo binarnu cifru množili stepenom osnove, tako možemo zaključiti da se konverzija decimalnog u binarni brojni sistem se zasniva na deljenju.
Postupak:
- Decimalni broj delimo sa 2
- Pišemo ostatak na mestu najmanje težine, odnosno najmanje značajnosti
- Celobrojni deo dalje delimo sa 2
Prilikom izrade primera ćete primetiti da kada je broj paran, ostatak je uvek 0, a kad je neparan ostatak je uvek 1.
Primer
Konvertujemo broj (156)10 u binarni broj.
156 / 2 = 78 - ostatak 0 < - - - - bit najmanje značajnosti
78 / 2 = 39 - ostatak 0
39 / 2 = 19 - ostatak 1
19 / 2 = 9 - ostatak 1
9 / 2 = 4 - ostatak 1
4 / 2 = 2 - ostatak 0
2 / 2 = 1 - ostatak 0
1 / 2 = 0 - ostatak 1 < - - - -bit najveće značajnosti
Tako dobijamo (156) 10 = (10011100) 2
68:2=34 ostatak: 0
Prvi dobijeni ostatak, u ovom slučaju 0, biće cifra najmanje težine binarnog broja (LSB) i upisujemo je na poziciju najmanje težine.
Zatim, proces nastavljamo dalje i delimo sa 2, svaki sledeći dobijeni broj.
34:2=17 ostatak: 0
17:2=8 ostatak: 1
8:2=4 ostatak: 0
4:2=2 ostatak: 0
2:2=1 ostatak: 0
1:2=0 ostatak: 1
Postupak se završava kada se u deljenju dođe do nule (1:2=0, ostatak 1). Dobijeni binarni broj je: 1000100
(68)10 = (1000100)2
Realni brojevi se u binarnom brojnom sistemu mogu prikazati na sličan način. Vrednost nekog realnog binarnog broja može se izračunati po izrazu
gde je:
i - pozicija cifre levo od decimalnog znaka
j - pozicija cifre desno od decimalnog znaka
n - broj cifara celobrojnog dela broja
m - broj cifara decimalnog dela broja
ai - cifra na i-toj poziciji ulevo od decimalnog znaka
aj - cifra na j-toj poziciji udesno od decimalnog znaka.
Treba primetiti da težine cifara levo od decimalnog znaka imaju vrednost kao što je prikazano u tabeli 1.
Na primer, broj 2349,62510 u binarnom brojnom sistemu izgleda
100100101101.1012
Konverzija decimalnog realnog broja u binarni se vrši tako što se posebno konvertuju celobrojni i decimalni deo. Celobrojni deo broja se konvertuje u binarni broj metodom koji se normalno koristi za cele brojeve.
Radi ilustracije ovog algoritma, prikazuje se postupak konverzije broja 0,2875 u binarni oblik ( Tabela 1 ). Postupak konverzije je prekinut posle 9 koraka iako je ostatak bio 0,2 a ne 0. Ovo znači da vrednost binarnog broja 0,0100100112 približno aproksimira vrednost decimalnog broja 0,287510. Ako se sada izvrši konverzija broja 0,0100100112 u decimalni oblik, videće se da on ima vrednost 0,28710937510. Dakle, razlika između vrednosti broja 0,287510 i njegove binarne reprezentacije sa 9 značajnih cifara 0,0100100112 je 0,000390625. Ovo pokazuje da se u internoj reprezentaciji vrednosti realnih brojeva najčešće aproksimiraju.
Normalizovani oblik nekog broja u naučnoj notaciji se može na sličan način predstaviti i u binarnom brojnom sistemu. U tom slučaju opšti oblik broja je:
Pri čemu celobrojni deo mantise C, koji je u ovom slučaju binarna cifra, može da uzme samo vrednost C=1, jer zbog izvršene normalizacije prva cifra ne može da bude nula. Kao što će kasnije biti pokazano, ova činjenica je iskorišćena da se sa istim brojem bitova dobije binarna reprezentacija veće preciznosti.
Na primer, broj 2349,62510 u binarnom brojnom sistemu pre normalizacije izgleda 100100101101,1012. Posle normalizacije ovaj broj dobija oblik 1,001001011011012 * 21011. Decimalni zarez je pomeren za 11 mesta, pa je vrednost eksponenta E = 1110 = 10112.
Slično tome broj 0,287510 koji u binarnom obliku pre normalizacije izgleda 0,0100100112, nakon normalizacije dobija oblik: 1,00100112 * 2-10, jer je zarez pomeren za 2 mesta udesno (E = -210 = 102).
Iz oba primera se vidi da je jedina cifra celobrojnog dela 1, što je slučaj sa svim normalizovanim binarnim brojevima.