Skip to main content
 首页 » 编程设计

python之在python中递增二进制数

2025年05月04日8jiqing9006

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

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

提前致谢!

请您参考如下方法:

要执行您真正要求的操作,您应该转换为整数,加一,然后再改回二进制。

x = to_binary(int(x, 2) + 1) 

您可能会发现 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 
... 

在线查看它:ideone