Deo zbornika Uvod u programiranje kroz C

Heksadecimalni brojevi

Heksadecimalni (šesnaestični) sistem je uveden da bi se prevazišao problem dužine binarnog zapisa. Heksadecimalni zapis zahteva manje cifara, što je mnogo prihvatljivije za čoveka. Iako računar operiše nad binarnim brojevima, oni se mogu jednostavno prevesti u heksadecimalni oblik zahvaljajući pogodnom odnosu osnova ova dva sistema (24 = 16).

Heksadecimalni brojni sistem ima 16 cifara (heksa na grčkom znači šestnaest). Pored deset cifara koje su preuzete iz dekadnog sistema, heksdecimalni sistem koristi i slova, tako da ima:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Cifre 0-9 imaju uobičajene vrednosti, a slova A-F imaju vrednosti od 10-15.

Prevođenje heksadecimalnog broja u dekadni

Konverzija iz heksadecimalnog broja u dekadni (i obrnuto) vrši se slično kao kod binarnih brojeva. Na primer, cifre heksadecimalnog broja 4A2 imaju sledeće vrednosti:

dvestapedesetšestice šesnaestice jedinice
4 A 2

Obzirom da A označava cifru 10, heksadecimalni broj 4A2 je zapravo:

4A2
= 4 * 16^2 + 10 * 16 + 2
= 1024 + 160 + 2

Dakle 4A2 heksadecimalno ima vrednost 1186.

Prevođenje heksadecimalnog broja u binarni

Konverzija iz binarnog u heksadecimalni oblik (i obrnuto) je mnogo jednostavnija. Recimo da želimo da heksadecimalni broj 4A2 (iz gornjeg primera) prevedemo u binarni oblik. Sve što treba da uradimo je da svaku heksadecimalnu cifu prevedemo u binarni oblik.

Dakle, 4A2 hesadecimalno je 100101010 binarno, jer:

  • 4 je 100
  • A je 1010
  • 2 je 10

pa kad ova tri binarna niza spojimo dobijamo 100101010.

Prevođenje binarnog broja u heksadecimalni

Obrnuto, ako želimo da neki binarni broj prevedemo u hesadecimalni oblik, sve što treba da uradimo je da binarni broj razdelimo u grupe od po četiri cifre (počev s desna) i svaku grupu prevedemo u heksadecimalnu cifru.

Na primer binarni broj 1000101010101110100100111 koji na prvi pogled izgleda zastrašujuće dugačak, lako se prevodi u heksadecimalni zapis. Najpre broj razdelimo u grupe od po četiri cifre:

1 0001 0101 0101 1101 0010 0111

Sada svaku grupu prevedimo u heksadecimalnu cifru:

1 prevodimo u 1
0001 takođe u 1
0101 prevodimo u 5
0101 takođe u 5
1101 prevodimo u D (13)
0010 prevodimo u 2
0111 prevodimo u 7

Pa je tako 1000101010101110100100111 binarno jednako 1155D27 heksadecimalno. Lako, zar ne?

Literatura

  • dr Milan Popović, Osnove programiranja (skripta)
  • dr Violeta Tomašević, Osnovi računarske tehnike, Beograd, 2009.