Para generar números binarios en n
dígito
Hice esto para obtener hasta 16 números binarios.
n = 6 # for 6 digits
for i in xrange(16):
b = bin(i)[2:]
l = len(b)
b = str(0) * (n - l) + b
print b
Resulta así
000000
000001
000010
000011
000100
000101
000110
000111
001000
001001
001010
001011
001100
001101
001110
001111
Pero lo que quiero es obtener estos valores sin agregar una serie de 0s
en el prefijo.
¿Alguien puede ayudarme con esto?
Gracias
3 respuestas
Elimine la línea que rellena 0
s.
n = 6
for i in xrange(16):
b = bin(i)[2:]
l = len(b)
#b = str(0) * (n - l) + b # <--------
print b
Si te refieres a un número de relleno sin un secuenciador de cadena, usa str.format
con b
formato de tipo:
n = 6
for i in xrange(16):
print '{:0{}b}'.format(i, n)
# OR print '{:06b}'.format(i)
# OR print '{:b}'.format(i) if you want no leading 0s.
Si está pidiendo un método diferente:
n = 6
for i in xrange(16):
b = bin(i)[2:].zfill(n)
print b
str.zfill(n)
rellena la cadena con ceros a la izquierda para que tenga al menos la longitud n
.
Si simplemente no quieres los ceros iniciales:
for i in xrange(16):
b = bin(i)[2:]
print b
Mediante este código, puede generar una lista de números binarios hasta n en O (2 ^ int (log (n))) complejidad de tiempo.
import math
num=25
n=int(math.log(num,2))
x=['0','1']
for i in range(1,int(n)+1):
for j in range(0,2**i):
x.append('1'+x[j])
x[j]='0'+x[j]
print(x[0:num])
Salida::
['00000', '00001', '00010', '00011', '00100', '00101', '00110', '00111', '01000', '01001', '01010', '01011', '01100', '01101', '01110', '01111', '10000', '10001', '10010', '10011', '10100', '10101', '10110', '10111', '11000']
Espero que esto ayude
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.