作为我的brainf*ck 实现的调试器/测试程序,我创建了以下计数循环:
+[[>+]+]
使用单字节环绕单元格和带有环绕单元格的 30k 单元格,这将创建一个无限计数循环。它将每个单元格设置为 1,然后将每个单元格设置为 2,等等。
我的问题是,当它达到 255 时,内循环将单元格增加到 0,然后外循环立即将其增加到 1。这在溢出时充当“双步”,而不是单步。这是我可以让循环在这个紧凑的程序中无限继续的唯一方法。
每个单元格的计数0 -> 1 -> 2 ... 254 -> 255 -> 1 ...
虽然我希望它去0 -> 1 -> 2 ... 254 -> 255 -> 0 -> 1 ...
当前单元格为零时,很难继续循环。我玩过同一主题的变奏曲,但没有一个能做得恰到好处。
这个特定的程序只是一个用于测试的简单计数程序,但真正对我未来的程序有帮助的是知道如何反转循环条件,就像我需要使这个计数循环工作一样。