You are on page 1of 16

1.

UPUTSTVO ZA KONVERZIJU BROJEVA IZ JEDNOG U DRUGI BROJNI SISTEM

Brojni sistemi mogu biti pozicioni i nepozicioni.

Primer nepozicionih brojnih sistema su npr. rimski brojevi (I, II, III, V,X, L, MC...)

Pozicioni brojni sistemi nazivaju se i težinski, jer svaka pozicija ima svoju težinu
najveća težina → 12345 ← najmanja težina

B-baza (B) označava koliko različitih cifara postoji u nekom brojnom sistemu.

Baza sadrži cifre 0 - (B-1)

Primer:
Binarni B(2)={0, 1}
Tercijalni B(3)={0, 1, 2}
Oktalni B(8)={0, 1, 2, 3, 4, 5, 6, 7}
Dekadni B(10)={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
Haxadni B(16)={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}

U brojnim sistemima koji imaju više od 10 cifri koristimo slova: A=10, B=11, C=12, D=13,
E=14, F=15...

B = malo stado
B · B = srednje stado
B · B · B = veliko stado

(10) B= 10, B2 = 100, B3 = 1000


(8) B= 8, B2 = 64, B3 = 512
(16) B= 16, B2 = 256, B3 = 4096

* Zadatak tipa 2544(5) → (10) , ne treba raditi nego samo napisati da je to neispravan broj, jer broj
sa bazom (5) ne može sadržati cifru 5.
Korisno za naučiti

n n2 n3 n4
2 4 8 16
3 9 27 81
4 16 64 256
5 25 125 625
6 36 216 1296
7 49 343 2401
8 64 512 4096
9 81 729 6561
10 100 1000 10000
11 121 1331 14641
12 144 1728 20736
13 169 2197 28561
14 196 2744 38416
15 225 3375 50625
16 256 4096 65536
17 289 4913 83521
18 324 5832 104976
19 361 6859 130321
20 400 8000 160000

Stepeni 2 do 216
2 4 8 16 32 64 128 256

512 1024 2048 4096 8192 16384 32768 65536

2-1 = 0.5
2-2 = 0.25
2-3 = 0.125
2-4 = 0.0625
2-5 = 0.03125

2-3 = 8-1 = 0.125


2-4 = 16-1 = 0.0625
1.1 - Konverzija iz bilo kog sistema u decimalni

Broj zapisan u formatu:

Cn-1 ... C3 C2 C1 C0 . C1 C2 ... Cm

prebacuje se u dekadni sistem po formuli:

V(10)= Cn-1 · Bn-1 ... C3 · B3 C2 · B2 C1 · B1 C0 · B0 . C1 · B-1 C2 · B-2 ... C · B-(m-1)

Primer:

10110101(2) = 1 · 20 + 0 · 21 + 1 · 22 + 0 · 23 + 1 · 24 + 1 · 25 + 0 · 26 + 1 · 27
= 1 · 1 + 0 · 2 + 1 · 4 + 0 · 8 + 1 · 16 + 1 · 32 + 0 · 64 + 1 · 128
= 1 + 4 + 16 + 32 +128
= 181(10)

1234(5) = 4 · 50 + 3 · 51 + 2 · 52 + 1 · 53
= 4 + 15 + 50 + 125
= 194(10)

2763(8) = 3 · 80 + 6 · 81 + 7 · 82 + 2 · 83
= 3 + 48 + 448 + 1024
= 1523(10)

1E4A(16) = 10 · 160 + 4 · 161 + 14 · 162 + 1 · 163


= 10 + 64 + 3584 + 4096
= 7754(10)
1.2 - Konverzija iz decimalnog u bilo koji drugi brojni sistem

Prvo se utvrde stepeni baze (mala, srednja, velika itd. stada) tako da je najveći stepen baze manji
od datog broja (B0 B1 ... Bn < N)

Primer:
485(10) → (2) 1 2 4 8 16 32 64 128 256 512
485(10) → (8) 1 8 64 512

Zatim se utvrdi koliko se puta stepeni baze sadrže u datom broju

Primer:
485(10) → (8) 1 8 64

7 · 64 = 448 - 64 (B2) sadrži se 7 puta u broju 480, tako da je 7 broj sa najtežom pozicijom u
novom brojnom sistemu.
485(10) = 7xx (8)

485 - 448 = 37 - ostaje nam 37


4 · 8 = 37 - 8 (B1) sadrži se 4 puta u broju 37, tako da je 4 sledeći broj.
485(10) = 74x (8)

37 - 32 = 5 - ostaje nam 5
Pošto je 5 broj jedinica, tj. manji je od najmanjeg stada, njega prepisujemo na najlakšu poziciju
brojnog sistema.
485(10) = 745 (8)

Napomena: Ako nema nekog stepena baze na toj poziciji se piše 0.


453(10) = 705 (8)
480(10) = 740 (8)

Primer 2:
Prebacivanje iz decimalnog u binarni je dobar primer jer nema množenja, samo je potrebno znati
setpene broja 2.
485(10) → (2) 1 2 4 8 16 32 64 128 256

256 128 64 32 ima, 16 8 nema, 4 ima, 2 nema, 1 ima


453(10) = 111100101 (8)

Za vezbu:
700 (10)=1010111100 (2) 700 (10)= 2020 (7) 700 (10)= 41B (13) 700 (10)= 22G (18)
700 (10)= 221221 (3) 700 (10)= 1274 (8) 700 (10)= 380 (14) 700 (10)= 1HG (19)
700 (10)= 22330 (4) 700 (10)= 857 (9) 700 (10)= 31A (15) 700 (10)= 1F0 (20)
700 (10)= 10300 (5) 700 (10)= 587 (11) 700 (10)= 2BC (16)
700 (10)= 3124 (6) 700 (10)= 4A4 (12) 700 (10)= 273 (17)
1.3 - Konverzija kada je jedna baza stepen druge

Kada je jedna baza stepen druge konverzija je jednostavna.

B1n = B2 → 32 = 9

Konverzija iz manje baze u veću:


Primer 1:
122011 (3) = 564 (9)

Prvo grupišemo cifre po dve počevši od cifre sa najmanjom težinom


12 | 20 | 11 (3) = 564 (9)

Zatim svaki grupisani deo pretvaramo traženi brojni sistem


1 · 3 + 2 | 2 · 3 + 0 | 1 · 3 + 1 = 564 (9)

Primer 2:
10231 (4) = 12D (16)
1 | 02 | 31 (4) = 1 | 0 · 4 + 2 | 3 · 4 + 1 = 12D (16)

Konverzija iz veće baze u manju:


Primer 1:
781 (9) = 212201 (3)

Ovde radimo suprotno tj. pretvaramo svaku cifru broja sa većom bazom u dve cifre broja sa
manjom bazom
7 | 8 | 1 (9) = 2 · 3 + 1 | 2 · 3 + 2 | 0 · 3 + 1 = 212201 (3)

Primer 2:
211 (9) = 20101 (3)

Napomena: Pošto je jedna baza kvadrat druge grupisali smo cifre po dve. Da je B13 = B2 grupisali
bismo cifre po 3 cifre itd.
1.4 - Konverzije oktalni ↔ binarni ↔ hexa

23 = 8
24 = 16

oktalno - binarni hexa - binarni


0 = 000 0 = 0000
1 = 001 1 = 0001
2 = 010 2 = 0010
3 = 011 3 = 0011
4 = 100 4 = 0100
5 = 101 5 = 0101
6 = 110 6 = 0110
7 = 111 7 = 0111
8 = 1000
9 = 1001
A = 10 = 1010
B = 11 = 1011
C = 12 = 1100
D = 13 = 1101
E = 14 = 1110
F = 15 = 1111

Na ovaj način je lako izvršitii konverzije:

oktalno ↔ binarni
327 (8) = 011 | 010 | 111 = 11010111 (2)

hexa ↔ binarni
D7 (16) = 1101 | 0111 = 11010111 (2)

oktalno ↔ hexa
23704503 (8) = 010 | 011 | 111 | 000 | 100 | 101 | 000 | 011
= 0100 | 1111 | 1000 | 1001 | 0100 | 0011 = 4F8943 (16)

1.5 - Sabiranje u različitim brojnim sistemima

Kod sabiranja treba obratiti paznju na to koliko brojni sistem ima cifara:
1(2) + 1(2) = 10(2)
5(8) + 5(8) = 12(8)
7(16) + A(16) = 11(16)

3 2 7 (8) D 7 (16) 1 1 1. 1 1 1 1 (2)


2 3 5 (8) 9 D (16) 0. 0 0 0 1 (2)
5 6 4 (8) 1 7 4 (16) 1 0 0 0 (2)
1.6 - Razlomljeni brojevi

binarni → decimalni
1.1111 (2) = 1 · 20 + 1 · 2-1 + 1 · 2-2 + 1 · 2-3 + 1 · 2-4
= 1 + 0.5 + 0.25 + 0.125 + 0.0625
= 1.9375(10)

hexa → decimalni
1.A (16) = 1 · 160 +10 · 16-1
= 1 + 0.625
= 1.625 (10)

decimalni → binarni
Ovde je suština u tome da slično kao kada smo tražili pozitivne stepene broja 2, tražimo
negativne stepene. Znači gledamo koliko ima polovina (2-1), četvrtina (2-2), osmina (2-3),
šesnaestina (2-4) itd.

Primer 1:
0.625 (10) = 0.101 (2)

- u 0.625 ima 1 polovina (0.5)


0.625-0.5 = 0.125
- u 0.125 nema četvrtina (0.25)
- u 0.125 ima 1 osmina (0.125)
0.125-0.125 = 0

Za duže brojeve je teško raditi ovako pa koristimo algoritam:


Razlomljeni deo množimo sa 2, pa ako je dobijeni broj veći od 1 u binarnom broju pišemo 1, a
ako dobijeni broj nije veći od 1 u binarnom broju pišemo 0. Ovo ponavljamo dokle ne dobijemo
1.0 ili do zaokruzivanja.

Primer 2:
0.625 (10) = 0.101 (2)

0.625 /·2
1.250 ima polovina /0.25 · 2
0.50 nema četvrtina /0.5 · 2
1.0 ima osmina

Primer 3:
0.42 (10) = 0.01101... (2)
0.42 / · 2
0.84
1.68
1.36
0.72
1.44 ...
2 - Predstavljanje brojeva u računaru

2.1 - Negativni brojevi

Uobičajen način da se u matematici predstave negativni brojevi u bilo kojoj bazi je da im se kao
prefiks doda znak “-“. Međutim, računari su binarne sprave u kojima postoje samo 0 i 1 tako da
nam je potreban metod kodiranja znakova + i -.

Dva najbolja načina za ovo su :


1) označeni brojevi (signed) - kod celih brojeva
2) kod višak N - kodiranje eksponenta kod brojeva u pokretnom zarezu

0 je najvažniji broj u radu računara i ona mora da bude jedinstvena, ne sme da postoji +0 i -0.
Negativni brojevi se moraju zapisivati na takav način da 0 bude jedinstvena.
Računar uvek radi odbrojavajući prema 0. Da li je nešto 0 ili nije je jedina odluka koju računar
donosi.

Takođe u računarima se izbegava i operacija oduzimanja i ta operacija se svodi na dodavanje


potpunog komplementa.

Potpuni komplement

Da bismo izvršili operaciju dodavanja potpunog kompementa prvo moramo utvrditi veličinu
brojeva sa kojom radimo. U računarima brojevi su uvek ograničeni (char 1 bajt, short int 2 bajta,
int i float 4 bajta, double 8 bajta). Npr uzmimo da smo ograničeni na 4 cifre

____ na ovaj način možemo predstaviti brojeve 0-9999

7324
- 3585
3739

DEFINICIJA:
Nepotpuni komplement (NC) nekog broja definiše se tako što se svaka njegova cifra zameni
dopunom do maksimalne cifre tog brojnog sistema.

“9” - devetka pod navodnicima označava najveću cifru nekog brojnog sistema.
“9”(16) = F
“9”(8) = 7

Prema tome svaku cifru zamenimo njenom dopunom do maksimalne cifre tog brojnog sistema.

NC (3585) = 6414

DEFINICIJA:
Potpuni komplement (PC) nekog broja dobija se kada se nepotpunom komplementu doda 1.
PC = NC + 1
PC = 6414 + 1 = 6415

DEFINICIJA:
Oduzimanje nekog broja ekvivalentno je dodavanju potpunog komplementa.

7324
+ 6415
1 3739

Poslednju cifru odbacujemo zbog ograničenja na 4.

Potpuni komplement ima prednost što je kod njega 0 jedinstvena tj. ne postoji 0, +0, -0.

Predstavljanje negativnih brojeva

U računaru se negativni brojevi predstavljaju u obliku potpunog komplementa.


Posto računari koriste binarni brojni sistem, posao nam olakšava to što se NC dobija prostom
inverzijom.

1 bajt

________ 0 - 255

U jedan bajt može da stane 256 različitih sadržaja.

Ako ove brojeve posmatramo kao cele neoznačene (unsigned) brojeve jedan bajt može da
predstavi brojeve 0-255.
Formula za neoznačene brojeve je od 0 do 2n-1 , gde je n broj bitova.

Ako ove brojeve posmatramo kao cele označene (signed) brojeve jedan bajt može da predstavi
brojeve (-128) - (+127).
Formula za označene brojeve je od -2n-1 do 2n-1-1 , gde je n broj bitova.
Na ovaj način postoji 128 negativnih brojeva, jedinstvena nula i 127 pozitivnih brojeva.

Pozitivni brojevi 0 - 127 se zapisuju isto kao i u binarnom pozicionom sistemu:


00000000 0
00000001 1
00000010 2
...
01111111 +127

Negativni brojevi se zapisuju u obliku potpunog komplementa:

Primer: -1
00000001 (1)
11111110 NC (1)
+1
11111111 PC (1) = -1
Primer: -2
00000010 (2)
11111101 NC (2)
+1
11111110 PC (2) = -2

Primer: -128
10000000 (128)
01111111 NC (128)
+1
10000000 PC (128) = -128

Binarna Označeni Neoznačeni


vrednost broj (signed) broj (unsigned)
00000000 0 0
00000001 1 1
... ... ...
01111110 126 126
01111111 127 127
10000000 −128 128
10000001 −127 129
10000010 −126 130
... ... ...
11111110 −2 254
11111111 −1 255

Svi pozitivni brojevi na najstarijoj poziciji imaju 0, a negativni brojevi 1. U principu 0 i 1 na


najstarijoj poziciji predstavljaju + i -.

Korisne osobine:
1 1111111 = -128 + 127 = -1
1 1111110 = -128 + 126 = -2 ...

PC (1) = 255 , PC (255) = 1


PC (2) = 254 , PC (254) = 2
PC (128) = 128
PC (0) = 0 ← jedinstvena nula
2.2 Grupisanje binarnih brojeva

Bit
Binarna cifra (Binary digit). Može biti 0 ili 1.

1 bajt
Osnovna jedinica grupisanja binarnih cifara je 8 bitova (23), odnosno 1 bajt. 1 bajt sadrži 256
različitih sadržaja i može da predstavlja neoznačene brojeve od 0 - 255 ili označene brojeve od -
128 do +127. Međutim ova jedinica je suviše mala tako da se koriste veći registri.

word - (reč) označava više bajtova. Nekada se koristila da označi 2 bajta, potom za 4 bajta, ali to
nije definisano što znaci da može da se odnosi i na više bajtova

2 bajta
Registrom veličine 2 bajta (16 bita) može se predstaviti 65536 različitih sadržaja, odnosno
neoznačeni brojevi od 0 - 65535 ili označeni brojevi od -32768 do +32767.

3 bajta
Registrom veličine 3 bajta (24 bita) može se predstaviti 16.7 miliona (16.7 mil) različitih
sadržaja. Ova dužina registra koristi se samo za boje tj. svaki od 3 bajta predstavlja jednu RGB
boju.

4 bajta
Registrom veličine 4 bajta (32 bita) može se predstaviti 4.3 milijarde (4.2 mrd) različitih
sadržaja, odnosno neoznačeni brojevi od 0 - 4.3 mrd ili označeni brojevi od -2147 mil do +2147
mil.

bajta bita sadržaja neoznačeni označeni upotreba u


programiranju
1 bajt 8 bita 256 0 - 255 -128 - +127 char
2 bajta 16 bita 65536 0 - 65535 -32768 - +32767 short int
3 bajta 24 bita 16777216 0 - 16777215 x x
4 bajta 32 bita 4294967296 0 - 4294967295 -2147483648 - long int
+2147483647

Skraćenice

Skraćenica za milion je mil.


Skraćenica za milijardu je mrd.
...
1000 mrd tera
mrd giga
mil mega
1000 kilo
1
10-3 mili
10-6 mikro
10-9 nano
-12
10 piko
...
210 = 1024 ≈ 1000

210 ≈ 103

Kilo u dekadnom svetu znaci 1000 nečega, a u binarnom svetu znaci 1024 nečega. Ova sličnost
nam omogučava da na lak način okvirno odredimo dekadnu veličinu broja predstavljenog
stepenom dvojke.

Primeri:
232 = (210)3.2 ≈ (103)3.2 ≈ 109.6
216 = (210)1.6 ≈ (103)1.6 ≈ 104.8
2.3 - Predstavljanje razlomljenih brojeva

Koristimo eksponencijalni zapis oblika mantisa · eksponent.


broj (mantisa) · baza na neki stepen (eksponent)

Primer: 323.45(10)

323.45 E0 = 323.45 · 100


32.345 E1 = 32.345 · 101
3.2345 E2 = 3.2345 · 102 - normalizovan oblik
0.32345 E3 = 0.32345 · 103
0.032345 E4 = 0.032345 · 104
...
3234.5 E-1 = 32.345 · 10-1
32345 E-2 = 32345 · 10-2
323450 E-3 = 323450 · 10-3

Normalizovan oblik eksponencijalnog zapisa je onaj čija mantisa je veća ili jednaka 1, a manja od
baze.
(1 ≤ |m| < B)
Drugim recima mantisa izgleda tako da ima jednu cifru . neki razlomak.

IEEE 754 je standard koji definiše predstavljanje brojeva u pokretnom zarezu.

Brojevi u pokretnom zarezu nejčešće se zapisuju u registrima veličine 4 bajta (float) ili 8 bajta
(double), ali mogu se predstaviti i u proizvoljnom broju bajtova.
Da bi razlomljeni broj predstavili u računaru moramo ga prvo pretvori u binarni razlomak u
normalizovanom eksponencijalnom obliku.
U svakom registru moraju se predstaviti znak, eksponent i mantisa.
Uzmimo za primer zapis u 4 bajta

|_ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ |

1) znak - 0 za + ili 1 za -, upisuje se u prvi, najstariji bit u registru

|0 _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | +

|1 _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | -

2) eksponent - upisuje se u sledećih 8 bitova registra.

|x 1 1 1 1 1 1 1 | 1 _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ | _ _ _ _ _ _ _ _ |

Da bi se dobile i negativne vrednosti eksponent se kodira kodom “višak N”.


N = (2n-1)-1 gde n predstavlja broj bitova rezervisanih za eksponent. U ovom slučaju to je kod
“višak 127”, N= (28-1)-1 = 127.
Na ovaj način u 8 bitova moguće je predstaviti eksponent u rasponu od -127 do +128.
U 8 bajtnim registrima koristi se 11 bita za eksponent, N=(211-1)-1 = 1023, tako da se eksponent
predstavlja kodom “višak 1023”, u rasponu od -1023 do 1024.

Eksponent kod “višak 127” Binarna vrednost


8 bita (float)
-127 0 00000001
-126 1 00000002
... … …
0 127 01111111
1 128 10000000
... … …
128 255 11111111

Eksponent kod “višak 1023” Binarna vrednost


11 bita (double)
-1023 0 00000000001
-1022 1 00000000002
... … …
0 1023 01111111111
1 1024 10000000000
... … …
1024 2048 11111111111

3) mantisa - upisuje se u ostala 23 bita registra.

|x y y y y y y y | y 1 1 1 1 1 1 1 | 1 1 1 1 1 1 1 1 | 1 1 1 1 1 1 1 1 |

Kod registra veličine 8 bajta prostor za matisu je 52 bita.


Mantisa se upisuje na sledeći način:

Normalizovanoj binarnoj mantisi tipa


1.101010101010101010101010101010101010101010101

se “odseće” 1. pošto je to deo koji se podrazumeva. Na taj način u 23 bita predstavljamo 24 bitnu
mantisu.
101010101010101010101010101010101010101010101

Zatim mantisu zaokruzimo na 23 cifre i upisujemo u registar:


10101010101010101010101| 0101010101010101010101

Kod zaokruzivanja mantise treba voditi računa o prvoj odbačenoj cifri, jer ako je ta cifra 1
mantisa može dobiti sasvim drugačiji oblik. Primeri:
1) 10101010101010101010101| 10
= 10101010101010101010110

2) 01111111111111111111111| 10
= 10000000000000000000000
Dužina registra Znak Eksponent Mantisa
bita bita bita
4 bajta (float) 1 8 23
8 bajta (double) 1 11 52

PRIMERI ZADATAKA ZA ISPIT

Na ispitu ćemo koristiti “naš” standard: registar veličine 2 bajta (16 bita), znak 1 bit, eksponent 5
bita, mantisa 10 bita. Eksponent predstavljamo kodom “višak 15”.

Zadatak 1: -52.13

1) Broj je negativan tako da je najstariji bit 1.

2) Pretvorimo broj u binarni razlomak:

52.13(10) = 110100.00100001...(2)

3) Zatim binarni razlomak predstavimo kao normalizovan eksponencijalni oblik:

110100.00100001 = 1.1010000100001 E5

Zarez smo pomerili 5 mesta ulevo tako da je eksponent 5.

4) Eksponent kodiramo kodom “višak 15”


5 + 15 = 20
20 (10) = 10100 (2)

5) Od normalizovane mantise odsecamo “1.” i zaokružujemo je na 10 cifara:

1.1010000100001 = 1010000100 | 001

6) Upisujemo znak, eksponent i mantisu.

|1 1 0 1 0 0 1 0 | 1 0 0 0 0 1 0 0 |

7) Dobijeni broj predstavimo heksadno


1101 | 0010 | 1000 | 0100 (2) = D284 (16)

Zadatak 2: 73.6

73.6 (10) = 1001001.10011001...(2) = 1.00100110011001 E6


Znak = 0, Exp = 6 + 15 = 21
m = 0010011001 | 1001 = 0010011010

|0 1 0 1 0 1 0 0 | 1 0 0 1 1 0 1 0 | = 549A (16)
Zadatak 3: 4A07 (16)

|0 1 0 0 1 0 1 0 | 0 0 0 0 0 1 1 1 |

Znak = 0 = + , Exp = 18-15 = 3


m = 1000000111 = 1.1000000111

1.1000000111 E3 = 1100.0000111 = 12.05 (10)

Zadatak 4: A32B (16)

1 | 01000 | 1100101011

Znak = 1 = - , Exp = 8-15 = -7


m = 1100101011 = 1.1100101011

- 1.1100101011 E-7 =
- 0.00000011100101011 (2)

You might also like