Programiranje 1 - obnavljanja

Pozicioni brojni sistemi

Brojevni sistemi

naziv vrednost osnove cifre
dekadni 10 0,1,2,3,4,5,6,7,8,9
binarni 2 0,1
oktalni 8 0,1,2,3,4,5,6,7
heksadekadni 16 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F

 


Zapis u osnovi (bazi) b

(cn   cn-1   .   .   .     c1   c0  ) b

gde su cn,   cn-1, . . . c1,   c0   cifre u sistemu sa osnovom b

ima vrednost c0 * b0 + c1 * b1 + . . . + cn-1 * bn-1 + cn * bn

 


Primeri

(1101) 2 = 1 * 20 + 0 * 21 + 1 * 22 + 1 * 23 = (13) 10

(1101) 16 = 1 * 160 + 0 * 161 + 1 * 162 + 1 * 163 = 1 + 256 + 4096 = (4353) 10

(F9A) 16 = A * 160 + 9 * 161 + F * 162 = 10 * 160 + 9 * 161 + 15 * 162 = 10 + 144 + 3840 = (3994) 10

Domaći

Naročito obratiti pažnju na konverziju binarnog u oktalni sistem, jer ćemo to koristiti kod nekih UNIX komandi.

(110111100) 2 = (?) 10

(77) 8 = (?) 10

(FFFF) 16 = (?) 10

 


Dekadni u binarni

(26) 10 = (?) 2

 

  količnik ostatak rezultat
26 / 2 = 13 0
13 / 2 = 6 1
6 / 2 = 3 0
3 / 2 = 1 1
1 / 2 = 0 kraj postupka konverzije 1
      (11010) 2

Dekadni u oktalni

(181) 10 = (?) 8

 

  količnik ostatak rezultat
181 / 8 = 22 5
22 / 8 = 2 6
2 / 8 = 0 kraj postupka konverzije 2
      (265) 8

Dekadni u heksadekadni

(181) 10 = (?) 16

 

  količnik ostatak rezultat
181 / 16 = 11 5
11 / 16 = 0 kraj postupka konverzije 11 (heksadekadna cifra B)
      (B5) 16

Binarni u heksadekadni bez međukonverzije u osnovu 10

Za kôdiranje heksadecimalnih cifara dovoljne su binarne reči dužine četiri.

 

heksadekadna cifra kôd
0 0000
1 0001
2 0010
3 0011
4 0100 (0*20+0*21+1*22+ 0*23)
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Odavde je jasno kako zadovoljiti zahtev da se konverzija odvija direktno bez posrednih konverzija. Binarne cifre se grupišu podgrupe od po 4 cifre, počev od bitova najmanje težine. Ako ukupan broj bitova nije deljiv sa četiri, onda se dopisuje potreban broj vodećih nula (one su bez uticaja na promenu vrednosti originalnog zapisa).


Binarni u oktalni bez međukonverzije u osnovu 10

Za kôdiranje oktalnih cifara dovoljne su binarne reči dužine tri.

 

oktalna cifra kôd
0 000
1 001
2 010
3 011
4 100 (0*20+0*21+1*22)
5 101
6 110
7 111

Odavde je jasno kako zadovoljiti zahtev da se konverzija odvija direktno bez posrednih konverzija. Binarne cifre se grupišu podgrupe od po 3 cifre, počev od bitova najmanje težine. Ako ukupan broj bitova nije deljiv sa tri, onda se dopisuje potreban broj vodećih nula.


 

Pomoćni programi za konverziju brojeva među osnovama i aritmetičke operacije

 

Algoritam / pseudo-kôd za konverziju broja iz dekadne osnove u binarnu

 
Algoritam DecToBin (n)
ulaz: n /* n je prirodan broj */
izlaz: b /* b je niz cifara prirodnog broja n */

{ /* početak bloka instrukcija */
lokalne promenljive bloka:

i /* indeks niza b */

pom /* pomoćna promenljiva */

/*inicijalizacije*/

pom=n;
i=0;

while ( pom >0 )
   {
       b[i]= pom % 2 ;
       pom= pom / 2 ;
       i=i+1 ;
   } /* početak bloka instrukcija */

} /* KRAJ */

ObjaŠnjenja i diskusija

 


 

<<<===Naslovna ===>>>Programiranje 1