Python: Lectura errónea por teclado

Iniciado por kurosakisan, 24 Junio 2018, 17:12 PM

0 Miembros y 1 Visitante están viendo este tema.

kurosakisan

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!

ivancea96

Estás usando Python 2, así que los números que comeinzan por 0 están en octal.
(octal) 101010101 == (decimal) 17043521

kurosakisan