Răspuns :
Răspuns:
#include <iostream>
#include <cstring>
using namespace std;
char binar[100], ch;
int p[51], i, n, k=-1, inc=0;
int main()
{
cin >> binar;
n=strlen(binar);
cout << n << "\n";
if (n%2==1) { ++k; p[k]=1; ++inc;}
for (i=inc; i<n-1; i+=2 )
{
if (binar[i]=='0' && binar[i+1]=='0') { ++k; p[k]=0;}
if (binar[i]=='0' && binar[i+1]=='1') { ++k; p[k]=1;}
if (binar[i]=='1' && binar[i+1]=='0') { ++k; p[k]=2;}
if (binar[i]=='1' && binar[i+1]=='1') { ++k; p[k]=3;}
}
cout << k << "\n";
for (i=0; i<=k; ++i)
cout << p[i];
}
Explicație:
deoarece numărul n, binar, are până la 100 de cifre binare, el nu poate fi citit ca număr ci ca un şir de caractere. Pentru a converti un număr din baza 2 în baza 8, numărul binar se împarte în grupuri formate din 3 cifre binare, şi fiecărui grup îi corespunde o cifră octală. Se iau 3 cifre binare de la 2^3=8. Cum noi avem de convertit numărul binar în baza 4 ( 4= 2^2 ) vom diviza numărul binar începînd de la dreapta la stânga, în grupuri de câte 2 cifre binare. Cifrele în baza 4 de numeraţie sunt 0, 1, 2, 3 ce corespund grupurilor de cifre binare 00, 01, 10, 11.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!