当前位置: 首页 > 知识库问答 >
问题:

你好,世界!脑力操

端木兴国
2023-03-14

以下代码片段来自维基百科,是标准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,为什么将指针增加1并执行7次*ptr会导致a[1]等于70?难道a[1]=7不应该吗?看起来a[1]通过a[4]神奇地增加了10倍,我不明白为什么。

共有3个答案

鲁弘厚
2023-03-14

使cell 0等于10。然后,[开始循环。在循环中,每次迭代都向其他单元格添加一个设置的数字。例如,每次都向单元格1添加7。循环的最后一行,

籍光熙
2023-03-14

这个网站上有一个不错的brainfuck可视化工具:http://fatiherikli.github.io/brainfuck-visualizer/它使brainfuck语言更容易理解

范翰池
2023-03-14

[]字符表示循环。前10个表示循环将运行多少次。当您理解了各种命令的含义以及

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

> 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

 类似资料:
  • 本文向大家介绍TypeScript 你好,世界,包括了TypeScript 你好,世界的使用技巧和注意事项,需要的朋友参考一下 示例 这里我们有一个类 Greeter,它有一个构造函数和一个 greet 方法。我们可以使用 new 关键字构造一个类的实例,然后传入一个字符串,我们希望 greet 方法输出到控制台。Greeter 类的实例存储在 Greeter 变量中,然后我们调用 greet 方

  • 本文向大家介绍qml 你好,世界,包括了qml 你好,世界的使用技巧和注意事项,需要的朋友参考一下 示例 一个简单的应用程序在窗口中心显示文本“ Hello World”。            

  • 本文向大家介绍xaml 你好,世界,包括了xaml 你好,世界的使用技巧和注意事项,需要的朋友参考一下 示例 这是WPF中XAML页面的简单示例。它由XAML中最常见的元素a Grid,aTextBlock和aButton组成。 语法 描述 <Window> 根容器,用于承载可视化数据并使用户能够与之交互的内容。WPF窗口是XAML(.xaml)文件(其中元素为根)和CodeBehind(.cs)

  • 本文向大家介绍processing 你好,世界,包括了processing 你好,世界的使用技巧和注意事项,需要的朋友参考一下 示例 编写处理代码的最简单方法是简单地调用一系列函数。在处理编辑器中按运行按钮,处理将运行您的代码。这是一个例子: 此代码创建一个200x200窗口,绘制一个蓝色背景,将填充颜色更改为绿色,然后在屏幕中间绘制一个圆圈。 但是,大多数处理草图将使用预定义的setup()和d

  • 本文向大家介绍F# 你好,世界!,包括了F# 你好,世界!的使用技巧和注意事项,需要的朋友参考一下 示例 这是一个简单的控制台项目的代码,该项目显示“ Hello,World!”。到STDOUT,然后退出代码为0 逐行细分示例: [<EntryPoint>] -.net属性,用于标记程序(源)的“用于设置入口点的方法”。 let main argv-这定义了main一个由单个参数调用的函数argv

  • 本文向大家介绍sapui5 你好,世界!,包括了sapui5 你好,世界!的使用技巧和注意事项,需要的朋友参考一下 示例 我们首先为应用创建HTML页面。在那里,我们定义了元标记,用于加载SAPUI5库的脚本标记以及用于应用程序内容的占位符。 根据您的安装调整资源所在的路径(<>:<>)。对于OpenUI5,您可以使用src =“ https://openui5.hana.ondemand.com