Răspuns :
#include <fstream>
using namespace std;
ifstream fin("hex.in");
ofstream fout("hex.out");
const int dim = 1e4 + 1;
const char Hex[] = "0123456789ABCDEF";
char temp[dim], a[dim + 4];
int main()
{
int n = 0;
while( !fin.eof() )
fin >> temp[n++];
n--;
int rest = n % 4;
if( rest )
{
int adaos = 4 - rest;
for( int i = 0, curr = 1; curr <= adaos; ++i, ++curr )
a[i] = '0';
n += adaos;
for( int i = adaos; i < n; ++i )
a[i] = temp[i - adaos];
}
else
for( int i = 0; i < n; ++i )
a[i] = temp[i];
int numar;
bool pozitiv = 0;
for( int i = 0; i < n; i += 4 )
{
numar = (a[i] - '0') * 8 + (a[i + 1] - '0') * 4 + (a[i + 2] - '0') * 2 + (a[i + 3] - '0');
if( numar ) // Elimin zerourile nesemnificative de la inceput, in caz ca exista.
pozitiv = 1;
if( pozitiv )
fout << Hex[numar];
}
return 0;
}
using namespace std;
ifstream fin("hex.in");
ofstream fout("hex.out");
const int dim = 1e4 + 1;
const char Hex[] = "0123456789ABCDEF";
char temp[dim], a[dim + 4];
int main()
{
int n = 0;
while( !fin.eof() )
fin >> temp[n++];
n--;
int rest = n % 4;
if( rest )
{
int adaos = 4 - rest;
for( int i = 0, curr = 1; curr <= adaos; ++i, ++curr )
a[i] = '0';
n += adaos;
for( int i = adaos; i < n; ++i )
a[i] = temp[i - adaos];
}
else
for( int i = 0; i < n; ++i )
a[i] = temp[i];
int numar;
bool pozitiv = 0;
for( int i = 0; i < n; i += 4 )
{
numar = (a[i] - '0') * 8 + (a[i + 1] - '0') * 4 + (a[i + 2] - '0') * 2 + (a[i + 3] - '0');
if( numar ) // Elimin zerourile nesemnificative de la inceput, in caz ca exista.
pozitiv = 1;
if( pozitiv )
fout << Hex[numar];
}
return 0;
}
Vă mulțumim că ați accesat site-ul nostru dedicat Informatică. Sperăm că informațiile furnizate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag să reveniți și nu uitați să ne salvați la favorite!