Să se efectueze următoarele conversii din baza 10 în baza 2 și în baza 8 : 32768, 32767, 312, 5412, 256.
Dau coroana.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
int in_2, in_8, lista_numere[5] = {32768, 32767, 312, 5412, 256};
vector<int> rezultat_2, rezultat_8;
for(int i=0; i<5; i++)
{
in_2 = lista_numere[i];
in_8 = lista_numere[i];
//baza 2
while(in_2 > 0)
{
rezultat_2.push_back(in_2 % 2);
in_2 /= 2;
}
//afiseaza baza 2
cout << lista_numere[i] << " in baza 2: ";
for(int i=rezultat_2.size() - 1; i>=0; i--)
{
cout << rezultat_2[i];
}
cout << endl;
rezultat_2.clear();
//baza 8
while(in_8 > 0)
{
rezultat_8.push_back(in_8 % 8);
in_8 /= 8;
}
//afiseaza baza 8
cout << lista_numere[i] << " in baza 8: ";
for(int i=rezultat_8.size() - 1; i>=0; i--)
{
cout << rezultat_8[i];
}
cout << endl;
cout << endl;
rezultat_8.clear();
}
return(0);
}
Explicație:
Daca vrei sa afli spre exemplu cat e 39 in baza 2. Imparti 39 la 2 iar RESTUL il scri de la dreapta la stanga (ne intereseaza doar restul); dupa impartirea asta imparti catul la 2 s.a.m.d pana cand catul este 0.
39 / 2 = 19 rest 1 1
19 / 2 = 9 rest 1 11
9 / 2 = 4 rest 1 111
4 / 2 = 2 rest 0 0111
2 / 2 = 1 rest 0 00111
1 / 2 = 0 rest 1 100111