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 的单元格,您就可以 运行 括号内的代码,然后重复。
大多数 brainfuck 的实现将从 0 翻转到 255,然后从 255 翻转到 0。如果不能翻转,许多程序将根本无法运行。
在您的程序示例中,';'不是命令。应该是逗号吧。
如果我尝试在包含 0 的单元格中输入“-”,Brainfuck 会发生什么情况?
>-
此外,如果我尝试在指向 0 单元格时开始循环会怎样?
>[]
编辑: 我忘了提了,但我正在努力做一个口译员。 这是我用作示例的一段代码:
;>;<[->++<][->++<]
在第二次循环中,指向的单元格是“0”,所以我的程序开始无限循环。
Brainfuck 是一种非常依赖于实现的语言。 通常,Brainfuck 单元格的值范围为 0-255,因此是 8 位无符号整数值。 如果您尝试减少一个值为零的单元格,就像计算机通常发生的那样,您将执行 "underflow",这意味着该值将从 0 变为 255。同样,如果您尝试增加一个单元格的值255 - 你会得到 0.
可以通过这段伪代码实现 brainfuck 中的循环: [SOME_CODE] 就好像 while(*ptr!=0){SOME_CODE}
只要您在循环开始时没有指向值为 0 的单元格,您就可以 运行 括号内的代码,然后重复。
大多数 brainfuck 的实现将从 0 翻转到 255,然后从 255 翻转到 0。如果不能翻转,许多程序将根本无法运行。
在您的程序示例中,';'不是命令。应该是逗号吧。