Funciones para convertir de decimal a binario

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 

 

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
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 




Leave comments

authimage
  • A partir de Python 2.6 ya existe la función bin()

    Ejemplo:

    >>> bin(10)
    '0b1010'

    Saludos

  • Gracias, no la conocía, pero si que es buena puedo convertir un número como 23**123123 en tan solo un segundo en mi procesador intel atom. Ya quisiera ver su estructura


Copyright(c) 2017 - PythonBlogs.com
By using this website, you signify your acceptance of Terms and Conditions and Privacy Policy
All rights reserved