En otros foros ya empezaron a preguntar sobre otro ejercicio que les han dado sobre como pasar números decimales a binarios a la vieja escuela(python ya trae funciones para ello), pero además quieren que sea con decimales,aunque todavía no han dicho con cuantos, así que lo hice en base a dos decimales.Como me molesta que entren a pedir solo códigos también lo dejo acá, así evitamos preguntas sin intenciones de aprender.
#por tincopasan
#-*- coding: utf -8 -*-
import math
def binario(num):
co=0
resto = 0
numero_binario = []
if num <= 1:
print("no se puede convertir")
else:
while num > 1:
co = num //2
resto=num%2
numero_binario.append(resto)
num=num//2
numero_binario.append(1)
numero_binario.reverse()
return numero_binario
def binario_decimal(decimal):
aux=decimal*2
decimal_binario=[]
lista=[]
valor=0
while aux not in lista :
lista.append(aux)
partes=math.modf(aux)
valor= int(round(partes[1],2))
decimal_binario.append(valor)
if int(round(partes[1],2)) == 1 and round(partes[0],2)== 0.0:
break
aux=round(partes[0],2) * 2
return decimal_binario
def entero_decimal():
global entero
global decimal
global numero
numero=float(input("Ingrese un número: "))
partes=math.modf(numero)
decimal=round(partes[0],2)
entero=int(partes[1])
if decimal == 0.0:
print("El número decimal {} es en binario {}]" .format(int(numero) ,binario(entero)))
else:
parte_entera=binario(entero)
parte_decimal=binario_decimal(decimal)
print("El número decimal {} es en binario {}.{}" .format(int(numero) ,parte_entera,parte_decimal))
entero_decimal()
es recontra básico y dividido en funciones para que si alguien quiere, lo pueda entender fácil.Sino copiar y pegar sobra.
Saludos.