Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created July 29, 2019 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/ffceb19ad82b7cc7aee36e65fd458d2b to your computer and use it in GitHub Desktop.
Save parzibyte/ffceb19ad82b7cc7aee36e65fd458d2b to your computer and use it in GitHub Desktop.
/*
Algoritmo que convierte un número hexadecimal
a uno decimal en C
@author parzibyte
Visita: parzibyte.me
*/
unsigned long long hexadecimalADecimal(char *cadenaHexadecimal, int longitud) {
unsigned long long decimal = 0;
int potencia = 0;
for (int i = longitud - 1; i >= 0; i--) {
// Obtener el decimal, por ejemplo para A es 10, para F 15 y para 9 es 9
int valorActual = caracterHexadecimalADecimal(cadenaHexadecimal[i]);
// Elevar 16 a la potencia que se va incrementando, y multiplicarla por el
// valor
unsigned long long elevado = pow(BASE, potencia) * valorActual;
// Agregar al número
decimal += elevado;
// Avanzar en la potencia
potencia++;
}
return decimal;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment