Uvod
Binarni sistem je osnova za rad računara i digitalne elektronike i predstavlja sistem koji koristi samo dve cifre: 0 i 1. Svaka cifra u binarnom broju se naziva “bit” , a osam bitova predstavlja “bajt”
Svaki bit u binarnom broju predstavlja neki stepen broja dva. Ako imamo binarni broj od četri cifre, onda skroz desna cifra predstavlja tzv. “Least Significiant bit” i njen eksponent je “0” pa je njen stepen 2^0, krećući se na levo eksponent dvojke se povećava za jedan, pa tako drugi bit je 2^1, eksponent trećeg bita je 2 tj. 2^2 a četvrtog bita 3 tj. 2^3. Krećući se “ulevo” svaki sledeći bit je “važniji” pa se krajnji bit zove “Most Significiant bit”.
Konvertovanje binarnog u decimalni sistem
Kod binarnog sistema osnova nije “10” već “2” te bi binarni broj “1001” imao sledeću decimalnu vrednost broja 9. Evo kako dolazimo do toga:
1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 8 + 0 + 0 + 1 = 9
DECIMALNI SISTEM:
U decimalnom sistemu, svaka cifra u binarnom broju predstavlja neki stepen broja 10. Te ako imamo decimalni broj od četri cifre, onda skroz desna cifra ima eksponent “0” pa je njen stepen 10^0, krećući se na levo eksponent se povećava za jedan, pa tako druga cifra je 10^1, eksponent trećeg cifre je 2 tj. 10^2, a četvrte cifre je 3 tj. 10^3. Da bi dobili vrednost decimalnig broja potrebno je da se saberu sve vrednosti. Npr. broj “583′ ima sledeću vrednost:
1: 5*10^2 + 8*10^1 + 3*10^0 = 500 +80 +3 = 583
Formati za organizovanje bajtova
Kada se višebajtni podaci (poput celih brojeva većih od 255) čuvaju u memoriji oni mogu da se sačuvaju u različitim redosledima bitova. Postoje dve metode za organizovanje bajtova binarnih podataka: “Big Endian” i “Little Endian”.
U Big Endian formatu, najznačajniji bajt (MSB) se stavlja na najnižoj (prvoj) memorijskoj adresi. Nasuprot tome, Little Endian format stavlja najmanje značajniji bajt (LSB) na najnižoj (prvoj) adresi. Ovi formati imaju direktan uticaj na način na koji računari čitaju, pišu, i manipulišu višebajtnim binarnim vrednostima. U kontekstu računarske arhitekture i mrežnih protokola, za standardno prikazivanje podataka često se smatra “big endian” format. S druge strane, “little endian” format se često koristi u nekim računarskim arhitekturama, uključujući većinu verzija Intel x86 i x86-64 procesora.
Primer
Za 32-bitni podatak binarni prikaz bi bio:
- “Big Endian” (čita se s leva na desno pa je najveći bajt levo a najmanji desno):
0001 0010 0011 0100 0101 0110 0111 1000 -
“Little Endian” (čita s desna na levo, pa je najveći bajt desno a najmanji levo) pa da bi predstavljao isti binarni broj moramo obrnuti redosled:
1000 0111 0110 0101 0100 0011 0010 0001
NAPOMENA:
U stvarnosti, kada se radi o pravim bajtovima od 8 bitova, little endian poredak znači obrnuti redosled bajtova unutar većeg tipa podataka (kao što je 32-bitni integer), a ne bitova unutar bajta. U ovom kontekstu, za potrebe objašnjenja smo pretpostavili da je svaka grupa od 4 bita nezavisna jedinica .
Binarno predstavljanje decimalnih brojeva
Binarno predstavljanje Negativnih Brojeva
U računarstvu, postoji nekoliko metoda za predstavljanje negativnih brojeva u binarnom sistemu. Dve glavne metode su: “Komplement jedan” , “Komplement dva”. Komplement je dopuna datog broja do neke unapred definisane vrednosti, najčešće se realizuje dopunom broja do najvećeg broja binarnog sistema ili do osnove S brojnog sistema.
METODE ZA PREDSTAVLJANJE NEGATIVNIH BROJEVA:
1) “Komplement jedan” (Ones’ Complement)
U metodi komplementa jedan, negativni brojevi se predstavljaju invertovanjem svih bitova pozitivne vrednosti broja. Ima dva prikaza za nulu: 00000000 i 11111111.
2) “Komplement dva” (Two’s Complement)
“Komplement dva” je najčešće korišćena metoda za predstavljanje negativnih brojeva. Ova metoda koristi prvi bit za označavanje znaka, gde 0 označava pozitivan, a 1 negativan broj. Da bismo dobili negativan broj, invertujemo sve bite pozitivnog broja i dodamo 1 na rezultat.
Primer konvertovanja broja “-5” u binarni (“Komplement jedan”)
Za -5, prvo zapisujemo 5 kao 00000101 u binarnom formatu, a zatim invertujemo sve bite da dobijemo 11111010 kao “Komplement jedan” predstavljanje -5.
Primer konvertovanja broja “-5” u binarni (“Komplement dva”)
Da pretvorimo negativni celobrojni broj -5 u binarni sistem koristeći “Komplement dva” metod, pratimo sledeće korake:
- Pretvorimo apsolutnu vrednost broja (5) u binarni oblik, što je 101.
- Dopunimo broj nulama do željenog broja bitova, na primer 8 bitova, da dobijemo 00000101.
- Invertujemo sve bite, što daje 11111010.
- Dodamo 1 na ovaj broj, dobijajući 11111011, što je “Komplement dva” reprezentacija broja -5.
Ovaj binarni broj u “Komplement dva” metodu može se “pročitati” na obrnut način da bi se vratio u originalni decimalni broj -5.
Svaka od ovih metoda ima svoje prednosti i nedostatke. “”Komplement dva”” se najčešće koristi zbog svoje efikasnosti u aritmetičkim operacijama i jedinstvenog prikaza nule.
Konvertovanje celog broja u binarni sistem
Da biste pretvorili decimalni broj u binarni, možete koristiti metod deljenja sa 2. Ovaj postupak uključuje deljenje decimalnog broja sa 2 i zapisivanje ostatka. Ostatci će predstavljati cifre binarnog broja, a postupak se ponavlja sa svakim količnikom dobijenim deljenjem dok količnik ne postane 0. Bitno je zapamtiti da se binarni broj čita od poslednjeg ostatka prema prvom, odnosno u obrnutom redosledu od kako su zapisivani.
Prikazivanje decimalnih brojeva u binarnom formatu možemo dobiti ako pratimo sledeće korake:
- Odredimo znak broja. 0 za pozitivan, 1 za negativan.
- Pretvorimo celobrojni deo broja u binarni format.
- Pomnoži decimalni deo broja sa 2.
- Zabeleži celobrojni deo rezultata kao binarnu cifru (0 ili 1).
- Uzmi preostali decimalni deo rezultata i ponovi proces množenja sa 2.
- Nastavi ponavljati proces dok ne dobiješ rezultat bez decimalnog ostatka ili dok ne dostigneš željeni broj decimala.
Primer konvertovanja broja “13” u binarni
- 13 deljeno sa 2 je 6 ostatak 1.
- 6 deljeno sa 2 je 3 ostatak 0.
- 3 deljeno sa 2 je 1 ostatak 1.
- 1 deljeno sa 2 je 0 ostatak 1.
Kada zabeležimo ostatke odozdo na gore, dobijamo binarni broj 1101. Dakle, decimalni broj 13 je u binarnom sistemu 1101.
Kod pretvaranja negativnih decimalnih brojeva u binarni format, često se koristi dvosmisleni komplement te ćemo ga i mi ovde koristiti. Postupak je sledeći
- Konvertvoanje apsolutne vrednosti broja u binarni format: koristeći metod deljenja sa 2.
- Invertovanje cifre: Nakon dobijanja binarnog prikaza apsolutne vrednosti, invertuj cifre binarnog broja tako što ćeš zamijeniti sve nule sa jedinicama i sve jedinice sa nulama.
- Dodaj 1: Na invertovani binarni broj dodaj 1. Rezultat ovog koraka je dvosmisleni komplement originalnog negativnog decimalnog broja, što je njegov binarni ekvivalent.
Primer konvertovanja broja “-13” u binarni
Ako koristimo 8-bitni sistem za -13, postupak bi bio:
- Pretvori 13 u binarni: 00001101.
- Invertuj sve cifre: 11110010.
- Dodaj 1: 11110011.
Dakle, -13 u 8-bitnom dvosmislenom komplementu je 11110011.
Konvertovanje decimalnog broja sa frakcijom
Celi deo broja se pretvara na prethodno pomenuti način ali da biste pretvorili decimalni broj sa frakcijom u binarni, možete koristiti metod množenja sa 2. Ovaj postupak uključuje množenje decimalnog broja sa 2 i zapisivanje celog dela. Celi deo će predstavljati cifre binarnog broja, a postupak se ponavlja sa decimalnim delom dok ne dobijemo željeni broj decimala ili dok ne dobijemo rezultat bez decimalnog ostatka.
Primer konvertovanja broja “13.75” u binarni
Celi deo broja 13 pretvara se u binarni sistem na isti način kao i bilo koji celi broj. Postupak deljenja sa 2 daje binarni ekvivalent 1101.
Frakcijski deo 0.75 pretvara se množenjem sa 2:
- 0.75 × 2 = 1.5 (zabeležimo 1, nastavljamo sa frakcijskim delom 0.5)
- 0.5 × 2 = 1.0 (zabeležimo 1, frakcijski deo je sada 0)
Ovo daje frakcijski binarni ekvivalent .11, čime se celokupni binarni prikaz broja 13.75 postaje 1101.11.
Stoga, binarni ekvivalent decimalnog broja 13.75 je 1101.11.