Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
You are here: Home / Uputstva / Teorija / Binarni brojevi

Binarni brojevi

by Goran Mekić last modified Nov 04, 2007 10:08 PM
Postoje samo dva, a tolika komplikacija...

Svi već znamo da računari rade sa nulama i jedinicama. Istorijski razalog je jednostavan. Ako u vodovima ili ima struje ili nema struje, ne postoji mesto grešci (uslovno rečeno). Naime, kada je osobina koja se meri kontinualna (recimo, visina napona), uvek je prisutna greška zbog nesavršenosti provodnika, aparata za merenje, itd. Ako je sve što vi treba da izmerite to da li struja u nekom vodu postoji ili ne, mogućnost greške je minimalna. Naravno, sistem je mogao biti zamišljen tako da postoji 10 skokovitih nivoa struje te da se ne petljamo sa binarnim brojevima, ali se tako povećava i mogućnost greške. Ono što je računar doneo sa sobom je da ljudi imaju potrebu da shvate binardne brojeve kako bi bolje razumeli rad računara. Videćete, ovo je stvarno prosto.

Za početak ćemo prebaciti decimalni broj u neki binarni. Recimo broj 26. To se radi uzastopnim deljenjem sa 2 i zapisivanjem ostataka, sve dok rezultat deljenja ne postane 0. Prvo ću objasniti zapis koji ćemo dalje koristiti. Recimo, pri celobrojnom deljenju brojeva sa 2, imamo rezultat i ostatak:

7 / 2 = 3
ostatak: 1

Umesto ovako dugačkog zapisa, koristićemo sledeći format (pri tome se podrazumeva da se deli sa 2):

7 | 3
1

Ostatak pri deljenju je desno od broja, a rezultat rezultat ispod. Sada kada znamo ovaj format, evo kako se prebacuje decimalni zapis u binarni:

26 | 0    26(dec) = 11010(bin)
13 | 1
 6 | 0
 3 | 1
 1 | 1
 0

Kao što ste primetili, binarni rezultat se čita od dole na gore. Poprilično jednostavno, zar ne? Drugi problem je kako prebaciti binarni broj u decimalni. Pre toga ću dati primer banalnog računanja u decimalnom sistemu koji oslikava ideju prebacivanja iz sistema u sistem. Recimo da imate broj 128. On se može predstaviti na sledeći način:

128 = 1*102 + 2*101 + 8*100 = 1*100 + 2*10 + 8*1

Znači, pošto je u decimalnom sistemu osnova 10 (ima 10 cifara ukupno), to je rezultat jednak razlaganju cifara broja (cifra * 10pozicija cifre pri čemu se pozicija cifre broji sa desna na levo i od 0 na više). Slična stvar važi za binarne brojeve, samo što je osnova 2. Recimo da želimo da prebacimo 11010 nazad u decimalni zapis:

11010(bin) = 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 1*16 + 1*8 + 0*4 + 1*2 + 0*1 = 16 + 8 + 2 = 26

I to je cela gimnastika koju treba da znate oko pretvaranja u i iz binarnih brojeva. I nije neka nauka, zar ne?

Document Actions