-
-
Save parzibyte/43d78f72abb2911b0be88dd9bce38a9a 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
""" | |
https://parzibyte.me/blog | |
""" | |
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 | |
hexadecimal = input("Ingresa un número hexadecimal: ") | |
decimal = hexadecimal_a_decimal(hexadecimal) | |
print(f"El hexadecimal {hexadecimal} equivale a {decimal} en decimal") | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment