Python - Sumador Binario en Python

 
Vista:
Imágen de perfil de ByRuss X
Val: 12
Ha disminuido su posición en 17 puestos en Python (en relación al último mes)
Gráfica de Python

Sumador Binario en Python

Publicado por ByRuss X (3 intervenciones) el 30/12/2019 19:54:11
Buenas,
estoy intentando crear un proyecto en el cual se pasen los numeros de entrada a binarios y luego se sumen
alguna idea?

Les dejo el codigo:

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
def binary(num):
  try:
    num=int(num)
    n=""
    x=""
    while not num==0:
      x=num%2
      num=num//2
      x=str(x)
      n=n+x
    n=((n)[::-1])
    return n
  except ValueError:
    e="Err0r"
    return e
#user_input=input("Introduce el numero en positivo y sin decimales a pasar a binario(Próximamente, numeros negativos): ")
#binary(user_input)
def suma(sum1,sum2):
  sum1=str(sum1)
  sum2=str(sum2)
  x=len(sum1)
  y=len(sum2)
  sum1=int(sum1)
  sum2=int(sum2)
  xy=x
  yx=y
  if x<y:
    x=y
    y=xy
    diferencia=x-y
    sum1=sum1
    diferencia=str(diferencia*"0")
    sum2=str(sum2)
    sum2=diferencia+sum2
  elif y<x:
    x=x
    y=yx
    diferencia=x-y
    sum2=sum2
    diferencia=str(diferencia*"0")
    sum1=str(sum1)
    sum1=diferencia+sum1
  elif x==y:
    z=x
  sum1=int(sum1)
  sum2=int(sum2)
  sumatotal=sum1+sum2
  print(sumatotal)
suma(1001,101101)


Muchas Gracias
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
Imágen de perfil de José Manuel
Val: 76
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sumador Binario en Python

Publicado por José Manuel (19 intervenciones) el 07/01/2020 14:18:00
Hola:

Lo primero es que todo lo que recibes por input es una cadena. Luego efectivamente, debes convertir la cadena a entero y el problema primero es convertir el entero a binario que resultará otra vez una cadena pero en formato binario:

1
2
3
entero = 10
bin(entero) # resultado: '0b1010'
binario = "{0:b}".format(entero) # resultado: '1010'

Como ves, es mejor usar .format pues evitas el prefijo 0b. El segundo problema es sumar los binarios una vez obtenidos:

1
suma = "{0:b}".format(int(binario1,2) + int(binario2,2))

Coméntanos. Un saludo,
https://obelearningservices.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar