URI Online Judge | 1193
Conversão entre Bases
Por Neilor Tonin, URI
Brasil
Timelimit: 3
O professor de matemática de Juliano marcou uma prova cujo conteúdo será apenas conversão entre valores decimais, hexadecimais e binários. Uma das coisas mais complexas para Juliano é fazer estas conversões de base entre números. Por mais que estude, tem muita dificuldade para entender. Portanto, como você entende de computação e é amigo(a) de Juliano, ele solicitou a tua ajuda para que faça um programa que verifique se as conversões feitas por ele estão correta.
Entrada
A entrada contém vários casos de teste. A primeira linha da entrada contém um inteiro N, indicando o número de casos de teste que virão a seguir, um por linha. Cada caso de teste contém um valor X (X > 0) seguido de um texto Y com três caracteres, indicando se o valor X está no formato binário, decimal ou hexadecimal. Independente do formato, qualquer dos números deverá caber em um inteiro de 32 bits.
Saída
Para cada caso de teste, você deve apresentar o número de caso de teste seguido por duas linhas, que contém a conversão do valor fornecido para as outras duas bases. A sequência das bases de saída será sempre: decimal, hexadecimal (em minúsculo) e binário, ou seja deve-se respeitar esta ordem excluindo obviamente o formato de entrada.
Obs: deverá ser impressa uma linha em branco após cada caso de teste, inclusive após o último caso de teste.
Obs: deverá ser impressa uma linha em branco após cada caso de teste, inclusive após o último caso de teste.
# INÍCIO - CONVERÇÕES DE DECIMAIS
def dec_para_bin(num):
num = int(num)
valor = ''
resto = 0
while True:
resto = num // 2
aux = num-(resto*2)
valor+= str(aux)
num = num // 2
if num <= 0:
break
print(valor[::-1],"bin")
def dec_para_hex(num):
num = int(num)
print(hex(num)[2:],"hex")
# FIM - CONVERÇÕES DE DECIMAIS
# INÍCIO - CONVERÇÕES DE BINARIOS
def bin_para_dec(num):
num = list(num)
valor = 0
for i in num:
valor = valor * 2 + int(i)
print(valor,"dec")
def bin_para_hex(num):
# converte para decimal
num = list(num)
valor = 0
for i in num:
valor = valor * 2 + int(i)
# converte de decimal para hexadecimal
print(hex(valor)[2:],"hex")
# FIM - CONVERÇÕES DE BINARIO
# INÍCIO - CONVERÇÕES DE HEXADECIMAL
def hex_para_dec(num):
num = int(num, 16)
print(num,"dec")
def hex_para_bin(num):
num = int(num, 16)
dec_para_bin(num)
# FINAL - CONVERÇÕES DE HEXADECIMAL
vezes = int(input())
for i in range(vezes):
num,base = input().split()
print("Case %d:"%(i+1))
if base == 'bin':
bin_para_dec(num)
bin_para_hex(num)
elif base == 'dec':
dec_para_hex(num)
dec_para_bin(num)
elif base == 'hex':
hex_para_dec(num)
hex_para_bin(num)
print()
0 Comentários