School-Coding-Cpp/sfusi/HEX to DEC.cpp

44 lines
861 B
C++

#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
int main(void) {
char esadecimale[3];
cout << "Inserisci un numero esadecimale: ";
cin >> esadecimale;
int decimale = 0;
int potenza = 1;
int lunghezza = strlen(esadecimale);
for (int i = lunghezza - 1; i >= 0; i--) {
char c = toupper(esadecimale[i]);
int valore;
if (c >= '0' && c <= '9') {
valore = c - '0';
} else if (c >= 'A' && c <= 'F') {
valore = 10 + (c - 'A');
} else {
cout << "Numero esadecimale non valido!" << endl;
return 0;
}
decimale = decimale + (valore * potenza);
potenza = potenza * 16;
}
if (decimale < 0 || decimale > 255) {
cout << "Numero esadecimale non valido!" << endl;
return 0;
}
cout << "Numero decimale: " << decimale << endl;
return 0;
}