Created
July 29, 2019 22:48
-
-
Save parzibyte/ffceb19ad82b7cc7aee36e65fd458d2b to your computer and use it in GitHub Desktop.
Número hexadecimal a decimal en C - https://parzibyte.me/blog/2018/11/19/hexadecimal-decimal-c/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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