在python中增加二进制数

Py4*_*y42 1 python binary

我想知道,如何增加表示二进制数的字符串,一直到另一个二进制数?(例如,用于while循环).

例如,我从"0000"开始,在15个inc之后,我应该达到"1111"(换句话说:"0000","0001","0010",......,"1111").起初这个问题看起来很简单,但我能想到的唯一解决方案是非常荒谬的(不是pythonic,有些人可能会说).有没有人有建议?

提前致谢!

Mar*_*ers 5

要按照字面意思要求做你应该转换为整数,添加一个,然后改回二进制.

x = to_binary(int(x, 2) + 1)
Run Code Online (Sandbox Code Playgroud)

您可能会发现bin内置方法在实现中很有用to_binary,但您需要稍微修改其输出以匹配您想要的结果.

但是,如果可能不进行来回转换会更好:只需存储一个整数并在需要显示它时将其转换为二进制.

在阅读您的问题仔细不过,这一切似乎你想要做的是生成的字符串'0000','0001','0010',等等.如果这是正确的,那么我建议使用itertools.product.

例:

import itertools
for x in map(''.join, itertools.product('01', repeat=4)):
    print x

0000
0001
0010
...
Run Code Online (Sandbox Code Playgroud)

看到它在线工作:ideone