Programación en lenguaje C para convertir decimal a hexadecimal
Método 1:
#include
#include
usando el espacio de nombres std;
string DecIntToHexStr(long long num)
{ string str; long long Temp = num / 16; int left = num % 16; p>DecIntToHexStr(Temp); if (izquierda < 10) str += (izquierda + '0'); else str += ('A' + izquierda - 10); DecStrToHexStr(string str){ long long Dec = 0 for (int i = 0; i < str.size(); ++i) Dec =?
Dec * 10 + str[i] - '0'; return DecIntToHexStr(Dec);}int main()
{ string DecStr; while (cin >> DecStr) { cout << "0x" + DecStrToHexStr(DecStr } return 0; }
Método 2:
#include
#include
#include
#include
#include
usando el espacio de nombres std;int main()
{ string decStr; >> decStr; int num = stoi(decStr); vector
1) * 4; ++j) { si (v[ j] == 1) temp += pow(2, k); --k; } if (temp <= 9) hexStr += temp; else hexStr += ('A' + temp - 10); /p>
else { int númerocero = 4 - v.size() % 4; para (int i = 0; i < númerocero; ++i) v.insert(v.begin(), 0); (int i = 0; i < v.tamaño()
/ 4; ++i) { int temp = 0, k = 3; para?
(int j = i * 4; j < (i + 1) * 4; ++j) { si (v[j] == 1) temp += pow(2, k); --k; }
if (temp <= 9) { stringstream ss; p>ss << temp; ss >> strTemp; hexStr += strTemp; } else hexStr += ('A' + temp - 10);
Información ampliada:
Hay tres formas de lograrlo, dos de las cuales son utilizar funciones del sistema y la otra es escribirlo directamente usted mismo.
El siguiente código es la implementación de tres métodos, incluidos números enteros de 2 dígitos y cualquier número entero (dentro de 2 elevado a 31). Puede elegir el método de implementación que necesita.
Las funciones del sistema utilizadas son
1.char *? itoa (valor int, char * str, int valor es el número a convertir, str es la cadena convertida); La ubicación de almacenamiento, base, es un número base (pero esta función no es una función estándar de C y algunos compiladores no la admiten). Entonces el código puede ser:
char buffer [33]; // Se usa para almacenar la cadena hexadecimal convertida, la longitud se puede definir según sea necesario char * inttohex(int aa){ itoa (aa, buffer, 16); return (buffer);}?
2. sprintf(str,"%x",value);str es la ubicación de almacenamiento de la conversión, %x representa el formato hexadecimal, el valor es el número. para ser convertido. Entonces el código puede ser:
char buffer [33]; // Se usa para almacenar la cadena hexadecimal convertida, la longitud se puede definir según sea necesario char * inttohex(int aa){ sprintf(buffer, "%x", aa); return (búfer);}
3. Escríbalo usted mismo
Si los parámetros son solo números enteros de dos dígitos, es muy simple.
El código es el siguiente:
#include
{ sprintf(buffer, "%x", aa return (buffer);} int main ()
);{? int num;? char * hex_str;? printf ("Ingrese un número: ");? scanf ("%d",&num);? hex_str = intttohex (num);? %sH \n", cadena_hex);? devolver 0;}