Python - decimal a numeros binarios

 
Vista:
sin imagen de perfil
Val: 26
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

decimal a numeros binarios

Publicado por Duvan (14 intervenciones) el 05/10/2018 04:27:59
necesito hacer que el código también convierta la parte decimal, ayuda es de urgencia :c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
f=input('ingrese el numero a convertir')
n=f
a=[]
co=2
div=f
while(co!=1):
    op=div/2
    res=div%2
    a.append(res)
    div=floor(op)
    if(div==1):
        co=1
a.append(div)
a.reverse()
print f,' en binario es= ',a
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

decimal a numeros binarios

Publicado por tincopasan (1082 intervenciones) el 05/10/2018 13:46:50
1) me molesta mucho el comentario es de urgencia,no tenemos las obligaciones de cumplir tus tiempos.2) El código que usas está en todos lados en la red y todavía no entiendo porque siguen usando de math floor sino es necesario.3)pasar decimales a binarios es matemática básica, hay cientos de tutoriales en la red, es solo cuestión de buscar y trasladarlo a python.4)Seguro que sino responde alguien van a saturar con la misma pregunta.5) Estoy aburrido así que hago un código, porque es algo muy básico.
6)se puede poner un contador para la parte binaria del decimal, ya que algunos valores se extienden demasiado y por lo general con 5 a lo sumo ya está bien.7)yo redondeo a 2 decimales queda en vos si querés usar más.7)Estaría muy bueno no solo copiar y pegar un código sino tratar de entenderlo,¿sino cómo aprenden? en fin...
8) lo hice con funciones para que sea más fácil de entender que hace cada una de ellas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#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()

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 26
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

decimal a numeros binarios

Publicado por Juan (14 intervenciones) el 05/10/2018 16:35:36
Muchas gracias amigo, disculpa las molestias, yo fui el mismo que mando el código en un foro anterior solo que me surgió esa otra duda y pues no entiendo mucho al profe así que por esa razón las preguntas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar