He encontrado 2 buenos algoritmos para convertir un numero decimal a binario a través de estas funciones que reciben el numero entero en base 10 a convertir y devuelven una cadena de caractéres con los dígitos del mismo número ya convertido a base 2.
Python versión 2.7
def binario1(n): """este primer algoritmo utiliza la formula n = 2k + b""" if n == 0 or n == 1: return str(n) k = n / 2 E = binario1(k) b = n % 2 return str(E) + str(b) def binario2(n): """y este va recorriendo 1 bit hacia la derecha en cada iteracion""" if n == 0: return str(n) b = '' while n > 0: b = str(n % 2) + b n >>= 1 #de esta forma el numero se va dividiendo entre 2 para llegar a 0 #y terminar el bucle #tambien podria ser de esta forma #n /= 2 return b
Siéntente libre de comentar que te parecieron y si conoces algún otro te invito a publicarlo, gracias
Te tengo una noticia
Noe Nieto | 11/10/2011, 15:34
A partir de Python 2.6 ya existe la función bin()
Ejemplo:
>>> bin(10)
'0b1010'
Saludos