Informatică, întrebare adresată de sebastianmilitaru45, 8 ani în urmă

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 de AfloareiAndrei
1

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

Alte întrebări interesante