Brainfuck中的无限计数循环

bgr*_*rag 6 esoteric-languages brainfuck

作为我的brainf*ck实现的调试器/测试程序,我创建了以下计数循环:

+[[>+]+]
Run Code Online (Sandbox Code Playgroud)

使用单字节,包装单元格和带有环绕的30k单元格,这将创建一个无限计数循环.它将每个单元格设置为1,然后将每个单元格设置为2,等等.

我的问题是,当它达到255时,内部循环将单元格递增为0,然后外部循环立即将其递增为1.当它溢出时,它就像一个"双步",而不是一步.这是我可以通过这个紧凑的程序让循环无限继续的唯一方法.

每个单元格的计数 0 -> 1 -> 2 ... 254 -> 255 -> 1 ...

虽然我希望它去 0 -> 1 -> 2 ... 254 -> 255 -> 0 -> 1 ...

当前单元格为零时,很难继续循环.我玩过相同主题的变体,但没有一个能够恰到好处.

这个特殊的程序只是一个简单的测试计数程序,但是对我未来的程序真正有用的是知道如何反转循环条件,就像我需要使这个计数循环工作一样.

cap*_*aig 4

尝试:

+[[>+]>[+>]+]

在第一个内部循环之后,我们知道数据是 0,后面跟着一堆 255。移动到下一个单元格并递增它们,直到我们回到起点。然后增加第一个单元格并重新开始。