Se poate trece la capitolul următor cu tasta ► și se poate reveni la un capitol precedent cu tasta ◄

Conversia unui număr din binar în hexazecimal


<

C
a
p
i
t
o
l
u
l

a
n
t
e
r
i
o
r

<

1. Algoritm

Conversia unui număr din binar to hexazecimal în Pascal

Conversia unui număr din binar to hexazecimal în Pascal

2. Discuție

Sistemul de numerotare hexazecimal are 16 cifre. Suntem obișnuiți cu sistemul decimal, în care avem 10 cifre (de la 0 la 9). În hexazecimal avem încă 6 și ca să nu inventăm simboluri noi, am folosit primele litere ale alfabetului latin.

Așadar:

  • 10 este A
  • 11 este B
  • 12 este C
  • 13 este D
  • 14 este E
  • 15 este F

Pe cât de ciudat pare, numărul A12F3 este corect. Chiar dacă are litere. În baza 10 el este numărul 660211.

Sistemele de numerotare binare și hexazecimale sunt, ciudat, foarte apropiate. Nu e nevoie de ceva algoritm complicat să facem conversia dintr-unul în altul.

De ce?

Ziceam ca în hexa avem 16 „cifre”. Ei bine, în binar, într-un spațiu de 4 cifre pot fi memorate... 16 valori. Adică avem o echivalență directă între cifrele hexazecimale și grupuri de câte 4 cifre binare.

Hai să vedem practic despre ce vorbesc:

  • cifra 0 hexa în binar este 0000; (sau pur și simplu 0)
  • cifra 1 hexa în binar este 0001;
  • cifra 2 hexa în binar este 0010;
  • ...
  • cifra A hexa în binar este 1010;
  • cifra B hexa în binar este 1011;
  • cifra C hexa în binar este 1100;
  • cifra D hexa în binar este 1101;
  • cifra E hexa în binar este 1110;
  • ultima cifra, F, hexa în binar este 1111;

Așa că putem construi un algoritm care ia primele 4 cifre binare și le convertește în echivalentul hexazecimal. Și repetă această operație cu următoarele 4 cifre până când numărul binar ni se termină.

Singura problemă este că lungimea numărul binar trebuie să fie un multiplu de 4. Adică numărul 101 este 5 dar ca să fie compatibil cu algoritmul nostru de conversie, el trebuie să fie de lungime 4, adică 0101. Așa că prin liniile:

  if length(binary) MOD 4 <> 0 then
     for i:= 1 to 4 - length(binary) MOD 4 do binary := '0' + binary;

pur și simplu adăugăm câte zerouri lipsesc ca numărul binar să fie de lungime corectă.


>

C
a
p
i
t
o
l
u
l

u
r
m
ă
t
o
r

>

Ți-a fost de ajutor ce am scris aici?
Hei, mersi de răspuns.