Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: bdred en 31 Marzo 2018, 16:09 pm



Título: ¿AYUDA A PRINCIPIANTE? Script de conversión numérica
Publicado por: bdred en 31 Marzo 2018, 16:09 pm
Hola, estoy intentando hacer un script de conversión numérica entre sistemas...
Específicamente quiero convertir un numero decimal a binario.

A la hora de convertir un numero entero no hay problema pero no puedo convertir un número decimal... (12.004 -> binario)


Les agradecería una opinión sobre métodos más eficientes para hacer estos scripts...
Quiero tener un script que convierta base: 16, 10, 8 ,2 a otro sistema numérico.

Está bien usar (bin)? ¿Algún consejo sobre librería para esto?
Gracias por su tiempo. Dejo lo que tengo echo. Saludos!

Código:

def inicio():
print ("-- Menu --")
print("***********")
print ("1- Conversión decimal a binario")
print ("2- Conversión binario a decimal")
print ("3- Conversión binario a hexadecimal")
print ("4- Salir de la aplicación")
print("")
menu = input("ingrese una opción: ")


if menu == "1":
decimal = int(input("Ingrese número decimal: "))
decbin(decimal)
elif menu == "2":
binario = int(input("Ingrese número binario: "))
elif menu == "3":
binario = int(input("Ingrese número binario: "))
else:
print ("Ha ingresado una opción incorrecta.")

def decbin(decimal):
print("Conversión de Decimal (Base 10) a Binario (Base 2)")
binario = bin(decimal)
print ("Su número binario es: ", str(binario))

inicio()


Título: Re: ¿AYUDA A PRINCIPIANTE? Script de conversión numérica
Publicado por: Sentex en 31 Marzo 2018, 16:31 pm
Yo he probado con un decimal y me ha funcionado.

13.421 = 0b1101


Título: Re: ¿AYUDA A PRINCIPIANTE? Script de conversión numérica
Publicado por: bdred en 31 Marzo 2018, 16:49 pm
Con el código que pase al poner un número real me tira de error:
ValueError: invalid literal for int() with base 10: '124.45'

y al poner decimal = float(input("Ingrese número decimal: ")) me da error:
TypeError: 'float' object cannot be interpreted as an integer

 :/:/:/:/


Título: Re: ¿AYUDA A PRINCIPIANTE? Script de conversión numérica
Publicado por: Sentex en 31 Marzo 2018, 21:21 pm
Pa ti

Código
  1. # -*- coding: utf-8 -*-
  2.  
  3. def inicio():
  4. print ("-- Menu --")
  5. print("***********")
  6. print ("1- Conversión decimal a binario")
  7. print ("2- Conversión binario a decimal")
  8. print ("3- Conversión binario a hexadecimal")
  9. print ("4- Salir de la aplicación")
  10. print("")
  11. menu = raw_input("ingrese una opción: ")
  12.  
  13.  
  14. if menu == "1":
  15.  decimal = raw_input("Ingrese número decimal: ")
  16.  decbin(decimal)
  17. elif menu == "2":
  18.  binario = raw_input("Ingrese número binario: ")
  19. elif menu == "3":
  20.  binario = raw_input("Ingrese número binario: ")
  21. else:
  22.  print "Ha ingresado una opción incorrecta."
  23.  
  24. def decbin(decimal):
  25. print("Conversión de Decimal (Base 10) a Binario (Base 2)")
  26. binario = bin(int(round(float(decimal))))
  27. print "Su número binario es: ", str(binario)
  28.  
  29. inicio()
  30.  

No hace falta print("") solo con print "" funciona en versiones desde la 2.7 en adelante


Título: Re: ¿AYUDA A PRINCIPIANTE? Script de conversión numérica
Publicado por: bdred en 4 Abril 2018, 03:14 am
Genial Sentex! me hacía falta usar el método "round", ahora si funciona.

Vale aclarar que en Python 3.x es necesario el uso de paréntesis en los print y ahora ya no se usa raw en los input... Solo input o el tipo de dato antes del input. Gracias ;)


Título: Re: ¿AYUDA A PRINCIPIANTE? Script de conversión numérica
Publicado por: Sentex en 7 Abril 2018, 13:29 pm
Yo es que uso python 2.7 ya que es la version con mas cosicas y la que a mi gusto funciona mejor.