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 .

binarni sistem

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:

  1. Pretvorimo apsolutnu vrednost broja (5) u binarni oblik, što je 101.
  2. Dopunimo broj nulama do željenog broja bitova, na primer 8 bitova, da dobijemo 00000101.
  3. Invertujemo sve bite, što daje 11111010.
  4. 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:

  1. Odredimo znak broja. 0 za pozitivan, 1 za negativan.
  2. Pretvorimo celobrojni deo broja u binarni format.
  3. Pomnoži decimalni deo broja sa 2.
  4. Zabeleži celobrojni deo rezultata kao binarnu cifru (0 ili 1).
  5. Uzmi preostali decimalni deo rezultata i ponovi proces množenja sa 2.
  6. 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

  1. Konvertvoanje apsolutne vrednosti broja u binarni format: koristeći metod deljenja sa 2.
  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.
  3. 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:

  1. 0.75 × 2 = 1.5 (zabeležimo 1, nastavljamo sa frakcijskim delom 0.5)
  2. 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.

Primer konvertovanja broja “0.625” u binarni

Da bismo pretvorili decimalni broj 0.625 u binarni, sledimo gore navedene korake:

  • Množenje sa 2: 0.625 x 2 = 1.25. Cela cifra je 1, zato je prva binarna cifra 1.
  • Ponovi sa ostatkom: Uzimamo decimalni deo 0.25 i ponovo množimo sa 2.
  • Množenje sa 2: 0.25 x 2 = 0.5. Cela cifra je 0, zato je druga binarna cifra 0.
  • Množenje sa 2: 0.5 x 2 = 1.0. Cela cifra je 1, zato je treća binarna cifra 1.

Dakle, 0.625 u decimalnom sistemu je .101 u binarnom sistemu.

Ovaj metod može dovesti do situacije gde proces ponavljanja nikada ne završi ako se pretvara decimalni broj koji nema tačan ekvivalent u binarnom sistemu. U takvim slučajevima, obično se koristi aproksimacija do određenog broja decimalnih mesta.

Primer konvertovanja broja “5.5” u binarni

Pretvaranje decimalnog broja 5.5 u binarni format:

  • Celobrojni deo (5) je 101 u binarnom.
  • Deo posle decimalnog zareza (0.5) je 0.1 u binarnom.
  • Kombinovanjem dobijamo 101.1.
  • U IEEE 754 formatu, ovo bi bilo normalizovano sa određenim eksponentom (ovisno o preciznosti i formatu).
Primer konvertovanja broja “-2.75” u binarni

Za pretvaranje broja -2.75 u binarni format:

  • Znak je 1 jer je broj negativan.
  • Celobrojni deo (-2) je 10 u binarnom.
  • Decimalni deo (0.75) se pretvara u 0.11 u binarnom.
  • Kombinovanjem celobrojnog i decimalnog dela dobijamo binarni broj 10.11.

Binarno predstavljanje heksadecimalnih podataka

Heksadecimalni brojevni sistem koristi 16 simbola (0-9 i A-F). U ovom sistemu, brojevi se pišu koristeći cifre od 0 do 9 i slova od A do F, gde A predstavlja 10, B je 11, C je 12, D je 13, E je 14, i F je 15 u decimalnom sistemu. Heksadecimalni brojevni sistem koristi osnovu 16 te slično kao i kod binarnih i decimalnih brojeva broj 456 ustvari ima vrednost 4*16^2+5*16^1+6*16^0= 1110 u decimalnom sistemu. Na primer, heksadecimalni broj FF predstavlja binarni broj 11111111 ili decimalni broj 255 (15*16^1+15*16^0=255).

Heksadecimalni brojevi su veoma slični decimalnim npr. 456 je takav broj, da bi ga razlikovali od decimalnih oni se obeležavaju na sledeći način: 0x456 gde “0x” ne menja vrednost nego predstavlja samo indikator.

Heksadecimalni brojevi su korisni u programiranju jer pružaju jednostavniji način za predstavljanje binarnih brojeva.Heksadecimalni brojevi su pogodni za predstavljanje binarnih brojeva, jer svaka heksadecimalna cifra odgovara četiri binarna bita. Da bismo pretvorili heksadecimalni broj u binarni, svaku heksadecimalnu cifru zasebno pretvaramo u odgovarajući četverobitni binarni broj.

Heksadecimalna Binarni
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
Primer konvertovanja heksadecimalnog broja “0x1A3” u binarni

Da bismo pretvorili heksadecimalni broj 1A3 u binarni koristićemo prethodnu tablicu:

  • Pretvoriti 1 u binarni: 0001
  • Pretvoriti A u binarni: 1010
  • Pretvoriti 3 u binarni: 0011

Dakle, heksadecimalni broj 1A3 u binarnom sistemu je 000110100011.

Binarno predstavljanje stringova

Pretvaranje stringova (teksta) u binarni sistem se obično vrši koristeći standardne šeme kodiranja znakova, gde svaki karakter ima svoju binarnu vrednost. Kodiranje znakova (Character Encoding) je sistem koji mapira skupove binarnih brojeva na znakove (slova, cifre, simbole), omogućavajući nam da koristimo kompjutere za čuvanje i prikazivanje teksta. Najpoznatije kodiranje je ASCII, ali ima ograničen set znakova. UTF-8 je šire korišćeno kodiranje koje može predstaviti mnogo veći broj znakova, uključujući sve što je potrebno za skoro sve svetske jezike. ASCII može direktno predstavljati znakove poput ‘A’ (65) ili ‘a’ (97), dok UTF-8 može predstavljati složenije znakove poput ‘ć’ (u dva ili više bajta).

ASCII Kodiranje znakova (Character Encoding)

ASCII je sistem koji koristi 7 bita za predstavljanje svakog karaktera, dozvoljavajući 128 različitih simbola. Na primer, veliko slovo “A” je predstavljeno brojem 65 u decimalnom sistemu, odnosno 01000001 u binarnom sistemu.

Tabela prvih 10 Slova Abecede sa Decimalnim, Heksadecimalnim i Binarnim Vrednostima
Slovo Decimalno Heksadecimalno Binarno
A 65 41 01000001
B 66 42 01000010
C 67 43 01000011
D 68 44 01000100
E 69 45 01000101
F 70 46 01000110
G 71 47 01000111
H 72 48 01001000
I 73 49 01001001
J 74 4A 01001010
Primer (ASCII)

Za string “Hi”:

  • “H” u ASCII je 72, binarno: 01001000
  • “i” u ASCII je 105, binarno: 01101001

Stoga, “Hi” postaje 01001000 01101001 u binarnom formatu.

UTF-8 Kodiranje znakova (Character Encoding)

UTF-8 može koristiti između 1 i 4 bajta za predstavljanje karaktera, podržavajući mnogo veći broj simbola, uključujući različite jezičke skripte i emoji. UTF-8 je kompatibilan sa ASCII-em za prvi set od 128 simbola.

Napomena: Ne postoji specifična “tabela” za svaki string. Umesto toga, koristite relevantne tabele kodiranja za pretvaranje karaktera u binarni sistem. Ovi kodovi omogućavaju standardizovanu konverziju tekstualnih podataka u binarne sekvence.

Podelite:

Ostavite komentar