-
-
Save parzibyte/c85a47c3c0d49bfd30b7159704b0a32a to your computer and use it in GitHub Desktop.
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
def obtener_valor_real(caracter_hexadecimal): | |
equivalencias = { | |
"f": 15, | |
"e": 14, | |
"d": 13, | |
"c": 12, | |
"b": 11, | |
"a": 10, | |
} | |
if caracter_hexadecimal in equivalencias: | |
return equivalencias[caracter_hexadecimal] | |
else: | |
return int(caracter_hexadecimal) | |
def hexadecimal_a_decimal(hexadecimal): | |
# Convertir a minúsculas para hacer las cosas más simples | |
hexadecimal = hexadecimal.lower() | |
# La debemos recorrer del final al principio, así que la invertimos | |
hexadecimal = hexadecimal[::-1] | |
decimal = 0 | |
posicion = 0 | |
for digito in hexadecimal: | |
print(f"Decimal es {decimal}") | |
# Necesitamos que nos dé un 10 para la A, un 9 para el 9, un 11 para la B, etcétera | |
valor = obtener_valor_real(digito) | |
print(f"El verdadero valor de {digito} es {valor}") | |
elevado = 16 ** posicion | |
print( | |
f"Elevamos 16 a la potencia {posicion}, el resultado es {elevado}") | |
equivalencia = elevado * valor | |
print( | |
f"Multiplicamos el número elevado por el valor del carácter actual: {equivalencia}") | |
decimal += equivalencia | |
print(f"Ahora decimal es {decimal}") | |
posicion += 1 | |
return decimal |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment