python - N位二进制数

标签 python string python-2.7 binary

用于生成 n 位的二进制数
我这样做是为了获得最多 16 个二进制数。

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

结果是这样的

000000
000001
000010
000011
000100
000101
000110
000111
001000
001001
001010
001011
001100
001101
001110
001111

但我想要的是在不在前缀中添加一系列 0 的情况下获取这些值。
谁能帮我解决这个问题。
谢谢

最佳答案

删除填充 0 的行。

n = 6
for i in xrange(16):
    b = bin(i)[2:]
    l = len(b)
    #b = str(0) * (n - l) + b  # <--------
    print b

如果您指的是不带字符串运算符的填充数字,请使用 str.formatb type format :

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.

关于python - N位二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589729/

相关文章:

python - 在 `any` 函数中找到失败的元素

java - 检查字符串是否包含特定字符的模式

python - 迭代列表时检查列表中的多个子字符串匹配

python - 在 Django 中使用 SendGrid Web API 而不是 SMTP 作为发送电子邮件的传输机制有什么优势?

python - Sphinx 中的自定义部分编号

python - 重写model.Manager方法后Django无法删除单个对象

java - 找不到类?

C++字符串类型混淆

python - 导入一个不存在的包

python-2.7 - python错误无法从python打开应用程序中的pdf