Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: kurosakisan en 24 Junio 2018, 17:12 pm



Título: Python: Lectura errónea por teclado
Publicado por: kurosakisan en 24 Junio 2018, 17:12 pm
Hola, hace poco me puse con python y he hecho un programita que pasa numeros binarios a decimal.

def a_Entero(x):
   print "Este es el numero en binario int", x
   x = str(x)
   exp = len(x) - 1
   print "Este es el numero en binario string", x
   print "Este es su tamaño menos uno", exp
   Decimal = 0
   for i in x:
      Decimal += (int(i) * 2**(exp))
      exp-=1
      print "el exponente", exp
   return Decimal

while True:
   x = str(input("escribe el numero en binario:\n"))
   print a_Entero(x)


He aqui una salida:

escribe el numero en binario:
0101010101
Este es el numero en binario int 17043521
Este es el numero en binario string 17043521
Este es su tamaño menos uno 7
el exponente 6
el exponente 5
el exponente 4
el exponente 3
el exponente 2
el exponente 1
el exponente 0
el exponente -1
689

fijaos en la tercera línea, porque el número no es el mismo que se ha escrito por pantalla?

Si veis alguna mala praxis no dudeis en decirmelo.

Gracias!


Título: Re: Python: Lectura errónea por teclado
Publicado por: ivancea96 en 24 Junio 2018, 18:22 pm
Estás usando Python 2, así que los números que comeinzan por 0 están en octal.
(octal) 101010101 == (decimal) 17043521


Título: Re: Python: Lectura errónea por teclado
Publicado por: kurosakisan en 24 Junio 2018, 20:33 pm
Cierto, era eso.
Muchas gracias :laugh: ;D