gpt4 book ai didi

python - Brainf*ck 输入解释

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:30 25 4
gpt4 key购买 nike

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

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

使用此输入:

43

波兰维基百科说结果应该是 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 -.-

最佳答案

输入是 43,以字节表示。输入为 ASCII 字符,因此值为 52 和 51。

  • 第一个输入递减 8、6 次,所以 52 - 48 = 4。

  • 第二个输入与第一个输入相加,因此 4 加 51 = 55。

  • 55 写入输出,即 ASCII 7

程序对两个 ASCII 数字求和。

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

关于python - Brainf*ck 输入解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16743726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com