while True:
print("""
MENU
QUAL O TIPO DE ENTRADA?
1 = DECIMAL
2 = BINARIO
3 = OCTAL
4 = HEXADECIMAL
5 = SAIR DO PROGRAMA
""")
opcao = int(input("Digite sua escolha "))
if opcao == 1:
print("""
MENU
PARA QUAL BASE QUER CONVERTER?
1 = CONVERTER PARA BINARIO
2 = CONVERTER PARA OCTAL
3 = CONVERTER PARA HEXADECIMAL
""")
escolha = int(input("Digite sua escolha "))
if escolha == 1:
try:
entrada = int(input("Digite o numero decimal "))
except ValueError:
print("ENTRADA INVALIDA.")
else:
quociente = 1
lista = []
while quociente >= 1:
resto = entrada % 2
lista.insert(0, resto)
quociente = entrada // 2
entrada = quociente
binario = ''.join([str(item) for item in lista])
print("O número convertido eh:", binario)
elif escolha == 2:
try:
entrada = int(input("Digite o numero decimal "))
except ValueError:
print("ENTRADA INVALIDA")
else:
lol = str(oct(entrada))
print("o número convertido eh: ", lol)
elif escolha == 3:
try:
entrada = int(input("Digite o numero decimal "))
except ValueError:
print("ENTRADA INVALIDA")
else:
xq = str(hex(entrada))
print("O número convertido eh: ", xq)
else:
print("OPCAO INVALIDA")
elif opcao == 2:
print("""
MENU
PARA QUAL BASE QUER CONVERTER?
1 = CONVERTER PARA DECIMAL
2 = CONVERTER PARA OCTAL
3 = CONVERTER PARA HEXADECIMAL
""")
escolha = int(input("Digite sua escolha "))
if escolha == 1:
entrada = input("Digite o numero binario ")
try:
if all(bit in '01' for bit in entrada):
n = len(str(entrada))
decimal = 0
i = 0
while n >= 0:
resto = entrada % 10
decimal = decimal + (resto * (2**i))
n = n - 1
i = i + 1
entrada = entrada // 10
print("O número convertido eh: ", decimal)
else:
raise ValueError
except ValueError:
print("ENTRADA INVALIDA")
elif escolha == 2:
entrada = input("Digite o numero binario ")
try:
if all(bit in '01' for bit in entrada):
n = len(str(entrada))
decimal = 0
i = 0
while n >= 0:
resto = entrada % 10
decimal = decimal + (resto * (2**i))
n = n - 1
i = i + 1
entrada = entrada // 10
lol = str(oct(decimal))
print("o número convertido eh: ", lol)
else:
raise ValueError
except ValueError:
print("ENTRADA INVALIDA")
elif escolha == 3:
entrada = input("Digite o numero binario ")
try:
if all(bit in '01' for bit in entrada):
n = len(str(entrada))
decimal = 0
i = 0
while n >= 0:
resto = entrada % 10
decimal = decimal + (resto * (2**i))
n = n - 1
i = i + 1
entrada = entrada // 10
xq = str(hex(decimal))
print("O número convertido eh: ", xq)
else:
raise ValueError
except ValueError:
print("ENTRADA INVALIDA")
else:
print("OPCAO INVALIDA")
elif opcao == 3:
print("""
MENU
PARA QUAL BASE QUER CONVERTER?
1 = CONVERTER PARA DECIMAL
2 = CONVERTER PARA BINARIO
3 = CONVERTER PARA HEXADECIMAL
""")
escolha = int(input("Digite sua escolha "))
if escolha == 1:
entrada = input("Digite o número octal: ")
try:
if all(digit in '01234567' for digit in entrada):
numero_decimal = int(entrada, 8)
print("O número convertido é", numero_decimal)
else:
raise ValueError
except ValueError:
print("ENTRADA INVÁLIDA")
elif escolha == 2:
entrada = input("Digite o número octal: ")
try:
if all(digit in '01234567' for digit in entrada):
numero_decimal = int(entrada, 8)
quociente = 1
lista = []
while quociente >= 1:
resto = numero_decimal%2
lista.insert(0,resto)
quociente = numero_decimal // 2
numero_decimal = quociente
binario = ''.join([str(item) for item in lista])
print("O número convertido eh: ",binario)
else:
raise ValueError
except ValueError:
print("ENTRADA INVÁLIDA")
elif escolha == 3:
entrada = input("Digite o número octal: ")
try:
if all(digit in '01234567' for digit in entrada):
numero_decimal = int(entrada, 8)
xq = str(hex(numero_decimal))
print("O número convertido eh: ", xq)
else:
raise ValueError
except ValueError:
print("ENTRADA INVÁLIDA")
else:
print("OPCAO INVALIDA")
elif opcao == 4:
print("""
MENU
PARA QUAL BASE QUER CONVERTER?
1 = CONVERTER PARA DECIMAL
2 = CONVERTER PARA BINARIO
3 = CONVERTER PARA OCTAL
""")
escolha = int(input("Digite sua escolha "))
if escolha == 1:
entrada = input("Digite o número hexadecimal: ")
try:
if all(char in '0123456789ABCDEFabcdef' for char in entrada):
numero_hexadecimal = entrada
numero_decimal = int(numero_hexadecimal, 16)
print(numero_decimal)
else:
raise ValueError
except ValueError:
print("ENTRADA INVÁLIDA")
elif escolha == 2:
entrada = input("Digite o número hexadecimal: ")
try:
if all(char in '0123456789ABCDEFabcdef' for char in entrada):
numero_hexadecimal = entrada
numero_decimal = int(numero_hexadecimal, 16)
quociente = 1
lista = []
while quociente >= 1:
resto = numero_decimal%2
lista.insert(0,resto)
quociente = numero_decimal // 2
numero_decimal = quociente
binario = ''.join([str(item) for item in lista])
print("O número convertido eh: ",binario)
else:
raise ValueError
except ValueError:
print("ENTRADA INVÁLIDA")
elif escolha == 3:
entrada = input("Digite o número hexadecimal: ")
try:
if all(char in '0123456789ABCDEFabcdef' for char in entrada):
numero_hexadecimal = entrada
numero_decimal = int(numero_hexadecimal, 16)
lol = str(oct(numero_decimal))
print("o número convertido eh: ", lol)
else:
raise ValueError
except ValueError:
print("ENTRADA INVÁLIDA")
else:
print("OPCAO INVALIDA")
elif opcao == 5:
print("FECHANDO O PROGRAMA...")
break
else:
print("OPCAO INVALIDA")