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

Conversia unui număr din zecimal în binar (C++)


<

C
a
p
i
t
o
l
u
l

a
n
t
e
r
i
o
r

<

1. Algoritm

Pentru a afla echivalentul unui număr obișnuit în baza 2, tot ce trebuie să facem e să împărțim succesiv numărul nostru la 2 până când numărul înițial devine 0. Și la fiecare împățire ținem minte restul (care poate fi 0 sau 1). Apoi citim numărul invers, de la dreapta la stanga și gata.

De exemplu pentru numărul 11 avem:

  • 11 / 2 = 5, rest 1
  • 5 / 2 = 2, rest 1
  • 2 / 2 = 1, rest 0
  • 1 / 2 = 0, rest 1

Așadar numărul 11 în binar este 1011.

2. Executare

Conversia unui număr din zecimal în binar în C++

3. Discuție

Fiindcă numărul în binar trebuie citit de la dreapta la stânga, îl vom memora sub formă de șir de caractere. E mult mai ușor de inversat decât lucrând cu numere.

În C++ nu există concatenare simplă, folosind un simbol precum „+”. De aceea ne folosim de strcat care primește doi parametri. Primul este șirul la care se adaugă conținutul celui de-al doilea. Și fiindcă C++-ul folosește funcții, aceasta returnează adresa pointerului concatenat (care de fapt e adresa primului parametru).

Așadar începem de la un șir vid căruia îi adăugăm valori de „0” sau „1”.

Iar pentru a-l inversa, folosim funcția strrev care pur și simplu inversează conținutul variabilei șir de caractere dată.

Ambele funcții sunt definite în librăria string.h, de aceea o vom include la începutul programului. iostream.h ne dă posibilitatea de a utiliza cout și cin. Adică C out și C in.


>

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.