Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' =========================================
- Programa que recebe dois decimais separados
- por um espaço, os converte em binários, soma
- os dois, converte para decimal e imprime na
- tela.
- ========================================= '''
- '''
- Recebe um número decimal e converte em binário
- com a ordem dos bits invertidos
- (bits mais significativos à direita)
- '''
- def converte_decimal_binario(numero):
- decimal1 = []
- indice = 0
- while(numero > 0):
- if(numero == 1):
- decimal1.insert(indice, 1)
- numero = 0
- else:
- decimal1.insert(indice, numero % 2)
- numero = numero // 2
- indice = indice + 1
- return decimal1
- '''
- Função que recebe dois numeros binários invertidos e
- iguala a quantidade de bits completando com zeros
- '''
- def iguala_bits(decimal, decimal2):
- diferenca = abs(len(decimal2) - len(decimal))
- lista_maior = []
- if(len(decimal) > len(decimal2)):
- for valor in range(diferenca):
- decimal2.append(0)
- lista_maior = decimal2
- else:
- for valor in range(diferenca):
- decimal.append(0)
- lista_maior = decimal
- return lista_maior
- '''
- Função recebe dois binários invertidos e retorna sua soma
- '''
- def soma_binarios(binario, binario2):
- soma = 0
- resto = 0
- lista_somada = []
- for valor in range(len(binario)):
- soma = ((binario[valor] + binario2[valor]) + resto)
- if(soma == 0):
- lista_somada.insert(valor, 0)
- soma = 0
- resto = 0
- elif(soma == 1):
- lista_somada.insert(valor, 1)
- soma = 0
- resto = 0
- elif(soma == 2):
- lista_somada.insert(valor, 0)
- soma = 0
- resto = 1
- else:
- lista_somada.insert(valor, 1)
- soma = 0
- resto = 1
- lista_somada.append(resto)
- return lista_somada
- '''
- Função recebe um binário invertido e retorna
- convertido em decimal
- '''
- def converte_binario_decimal(binario1):
- multiplicador = 1
- resultado = 0
- for valor in range(len(binario1)):
- resultado = multiplicador * binario1[valor] + resultado
- multiplicador = multiplicador * 2
- return resultado
- # Recebe dois decimais separado por espaço
- entrada = input()
- entrada = entrada.split()
- numero2 = int(entrada[1])
- numero1 = int(entrada[0])
- # Converte os decimais em binários invertidos
- decimal = converte_decimal_binario(numero1)
- decimal2 = converte_decimal_binario(numero2)
- # Iguala a quantidade de bits
- if(len(decimal) > len(decimal2)):
- decimal2 = iguala_bits(decimal, decimal2)
- else:
- decimal = iguala_bits(decimal, decimal2)
- # Soma os dois binários
- decimal_somado = soma_binarios(decimal, decimal2)
- # Converte para decimal
- decimal_final = converte_binario_decimal(decimal_somado)
- # Imprime a soma dos decimais captados na entrada
- print(decimal_final)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement