我正在用 Python 编写 Brainfuck 解释器,目前正在测试这段代码:
,>++++++[<-------->-],[<+>-]<.
使用此输入:
43
波兰语 Wikipedia 说结果应该是 7,但这里有些不对劲。我应该如何处理输入?作为 4 和 3 还是作为:“4”和“3”(52 和 51)?如果我将输入字符视为整数,则结果为 -41,因为在第一个循环 [0] 为 -44 且 [1] 为 0 之后,然后 [1] 变为 3,我们将 3 添加到 -44,因此结果为 -41 .
另一方面,如果我将输入字符视为 ASCII 码,那么在第一个循环 [0] 为 4 且 [1] 为 0 之后,[1] 变为 51,我们将 51 与 4 相加,结果为 55。(这JavaScript 解释器也给出了结果 55:https ://www.nayuki.io/page/brainfuck-interpreter-javascript )
但是,我下载了一些用 C 编写的解释器,它给出了结果 7,与 Wikipedia 告诉的一样......所以我很困惑。有那个解释器:http://pastebin.com/aasxLppa,这个解释器也给出结果7:brainfuck.tk -.-