gpt4 book ai didi

brainfuck - 你好,世界!在 脑筋急转弯

转载 作者:行者123 更新时间:2023-12-04 20:08:58 34 4
gpt4 key购买 nike

以下代码片段来自维基百科,是标准 Hello World! 的序言! Brainfuck 中的程序...

1. +++++ +++++             initialize counter (cell #0) to 10
2. [ use loop to set the next four cells to 70/100/30/10
3. > +++++ ++ add 7 to cell #1
4. > +++++ +++++ add 10 to cell #2
5. > +++ add 3 to cell #3
6. > + add 1 to cell #4
7. <<<< - decrement counter (cell #0)
8. ]

我明白这里发生的事情的要点,但我不明白第 3 行到第 6 行发生的事情的机制。如果 +++++ +++++a[0] 中的值加 10 ,为什么指针加一执行 ++*ptr七次结果 a[1]等于70?不应该 a[1] = 7 ?好像 a[1]通过 a[4]神奇地增加了十倍,我不明白为什么。

最佳答案

[]字符表示循环。 10 +在它之前的 s 表示循环将运行多少次。当您了解各种 commands意思是,和 <<<< -命令序列。

每次循环运行时,它执行以下步骤:

> move the pointer 1 space to the right
+++++ ++ add 7 to the current pointer
etc 3 more times > > >
<<<< - move back to the counter and decrement

这具有将“7, 10, 3, 1”相加 10 次的效果。换句话说,如果在运行循环时将值写入前 5 个指针位置,就像它们在数组中一样:
[10, 0, 0, 0, 0]     at first
[9, 7, 10, 3, 1] after first run
[8, 14, 20, 6, 2] after second
...
[0, 70, 100, 30, 10] up to this, the loop ends since the counter is 0,
and control continues

关于brainfuck - 你好,世界!在 脑筋急转弯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004459/

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