Brainfuck 尝试 - 在 0 单元格中

Brainfuck try to - in a 0 cell

如果我尝试在包含 0 的单元格中输入“-”,Brainfuck 会发生什么情况?

>-

此外,如果我尝试在指向 0 单元格时开始循环会怎样?

>[]

编辑: 我忘了提了,但我正在努力做一个口译员。 这是我用作示例的一段代码:

;>;<[->++<][->++<]

在第二次循环中,指向的单元格是“0”,所以我的程序开始无限循环。

Brainfuck 是一种非常依赖于实现的语言。 通常,Brainfuck 单元格的值范围为 0-255,因此是 8 位无符号整数值。 如果您尝试减少一个值为零的单元格,就像计算机通常发生的那样,您将执行 "underflow",这意味着该值将从 0 变为 255。同样,如果您尝试增加一个单元格的值255 - 你会得到 0.

可以通过这段伪代码实现 brainfuck 中的循环: [SOME_CODE] 就好像 while(*ptr!=0){SOME_CODE}

只要您在循环开始时没有指向值为 0 的单元格,您就可以 运行 括号内的代码,然后重复。

我建议你看看https://fatiherikli.github.io/brainfuck-visualizer/

大多数 brainfuck 的实现将从 0 翻转到 255,然后从 255 翻转到 0。如果不能翻转,许多程序将根本无法运行。

在您的程序示例中,';'不是命令。应该是逗号吧。