Răspuns :
Răspuns:
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
long x, y;
int a[10],b[10], n, m, i, j, k = 0, r = 0, sum[20];
cout<<"Introduceti primul numar in baza 10: ";
cin>>n;
for(i=0; n>0; i++)
{
a[i]=n%2;
n= n/2;
}
cout<<"Introduceti al doilea numar in baza 10: ";
cin>>m;
for(j=0; m>0; j++)
{
b[j]=m%2;
m= m/2;
}
// Conversie primul numar in string ce tine valoarea binara
string alpha = "";
for(i=i-1 ;i>=0 ;i--)
{
alpha = alpha + to_string(a[i]);
}
// Conversie al doilea numar in string ce tine valoarea binara
string omega = "";
for(j=j-1 ;j>=0 ;j--)
{
omega = omega + to_string(b[j]);
}
///Start Suma
/// Conversie in long din string pentru cele 2 numere binare
x = stol(alpha, nullptr, 10);
y = stol(omega, nullptr, 10);
//Afisare numere binare
cout <<"Primul numar in baza 2 este " <<alpha << endl;
cout <<"Al doilea numar in baza 2 este "<< omega << endl;
while (x != 0 || y != 0)
{
sum[k++] = (x % 10 + y % 10 + r) % 2;
r = (x % 10 + y % 10 + r) / 2;
x = x / 10;
y = y / 10;
}
if (r != 0)
sum[k++] = r;
--k;
cout << "Suma celor doua numere in baza 2 este: ";
while (k >= 0)
cout << sum[k--];
cout << ". ";
return 0;
}
Explicație:
Se citesc 2 numere in baza 10 de la tastatura. Se face conversie in baza 2, valorile obtinute adaugand-use pe rand intr-un vector. Se citesc valorile obtinute din vector si se adauga intr-un string (alpha, omega).
Mai departe, se face conversie din string in long pentru a face suma numerelor binare. Se afiseaza valoarea numerelor binare.
Se face suma, se afiseaza suma
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Ne vedem curând și nu uitați să ne adăugați la marcaje!