Pablo
¿Hay algún módulo o función en Python que pueda usar para convertir un número decimal a su equivalente binario? Puedo convertir binario a decimal usando int(‘[binary_value]’,2), entonces, ¿alguna forma de hacer lo contrario sin escribir el código para hacerlo yo mismo?
todos los números se almacenan en binario. si desea una representación textual de un número dado en binario, use bin(i)
>>> bin(10)
'0b1010'
>>> 0b1010
10
-
Engañoso. bin() devuelve binario cuerdano binario
– hiperbolt
2 de febrero de 2021 a las 3:50
-
@hiperbolt podría usar un enlace a una solución no engañosa
– Gulzar
15 de junio de 2021 a las 9:53
"{0:#b}".format(my_int)
-
Este es el formato para imprimir con ceros a la izquierda:
"{0:08b}".format(my_int)
–Waldo Bronchart
6 de mayo de 2013 a las 9:49
-
@WaldoBronchart eso es genial. ¿Puedes explicarme cómo funciona eso, tener los ceros a la izquierda? ¿Está eso incorporado, que obtienes los ceros iniciales con 0+8 o 0+16?
– Alejandro Allegro
2 de mayo de 2020 a las 11:52
usuario136036
Sin el 0b delante:
"{0:b}".format(int_value)
A partir de Python 3.6 también puedes usar literal de cadena con formato o cuerda f— ENERGÍA:
f"{int_value:b}"
-
Tuve el siguiente error:
TypeError: non-empty format string passed to object.__format__
– Pierna derecha
7 febrero 2018 a las 15:47
-
lo mismo para mí con python 3.5.2 TypeError: cadena de formato no vacía pasada a object.__format__ ahh – ahora lo entiendo, lo que quisiste decir: “`>>> “{0:b}”.format(47) – –> ‘101111’
–Josef Klotzner
10 oct 2019 a las 18:58
-
También puede determinar la cantidad de bits que se representarán de esta manera:>>>
"{:0>15b}".format(3)
>>> ‘000000000000011’– Darina Sergeivna
7 dic 2020 a las 21:35
-
puede también
format(int_value, 'b')
– Arye P.
27 de mayo a las 9:24
def dec_to_bin(x):
return int(bin(x)[2:])
Es fácil.
También puede usar una función del módulo numpy
from numpy import binary_repr
que también puede manejar ceros a la izquierda:
Definition: binary_repr(num, width=None)
Docstring:
Return the binary representation of the input number as a string.
This is equivalent to using base_repr with base 2, but about 25x
faster.
For negative numbers, if width is not given, a - sign is added to the
front. If width is given, the two's complement of the number is
returned, with respect to that width.
Estoy de acuerdo con la respuesta de @aaronasterling. Sin embargo, si desea una cadena no binaria que pueda convertir en un int, puede usar el algoritmo canónico:
def decToBin(n):
if n==0: return ''
else:
return decToBin(n/2) + str(n%2)
Harry
n=int(input('please enter the no. in decimal format: '))
x=n
k=[]
while (n>0):
a=int(float(n%2))
k.append(a)
n=(n-a)/2
k.append(0)
string=""
for j in k[::-1]:
string=string+str(j)
print('The binary no. for %d is %s'%(x, string))
A diferencia de la pregunta vinculada “convertir a cadena binaria”, creo que esta pregunta es diferente. Vine aquí buscando convertir un número entero a un binario correspondiente formación (o matriz booleana), y creo que sería una respuesta sensata.
– Sanjay Manohar
16 de enero de 2020 a las 20:57
@SanjayManohar El algoritmo de procesamiento de cadenas puras que se encuentra aquí podría adaptarse para hacer lo que desee.
– Copiar y Pegar
15 de marzo de 2020 a las 17:11