智能输入解释

2024-04-19 14:22:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写Brainfuck解释器,目前正在测试以下代码:

,>++++++[<-------->-],[<+>-]<.

有了这个输入:

^{pr2}$

波兰维基百科说,结果应该是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,和维基百科上说的一样。。。所以我很困惑。有一个解释器:http://pastebin.com/aasxLppa,这个解释器也给出了结果7:brainfuck.tk公司-.-


Tags: 代码httpsiowww地方asciipage整数
1条回答
网友
1楼 · 发布于 2024-04-19 14:22:25

输入是4和{},以字节表示。输入为ASCII字符,因此值为52和51。在

  • 第一个输入减少8.6倍,因此52-48=4。

  • 第二个输入加到第一个输入上,所以4加51=55。

  • 55写入输出,即ASCII 7

程序将两个ASCII数字相加。在

JavaScript解释器完全正确。您看到的是第一个寄存器,它保存着55的字节值,但是output框显示了7,即ASCII字符。在

相关问题 更多 >