Brainfuck 操作可视化 逐步执行、内存变化与输出结果可视化
等待
字符数: 31
间隔(s):
跳转:未检测到对应值或单元格留空则快进
单元格 #
目标值:
内存可视化
等待输出...
指令列表
符号 功能 说明
+数值+1当前单元格(内存格)+1并变绿
-数值-1当前单元格-1并变黄
<指针左移单元格左移一格。
>指针右移单元格右移一格。
[循环开始如果当前单元格数值为0,跳转至对应的]之后。
]循环结束如果当前单元格数值不为0,跳回对应的[处。
.输出直接输出当前单元格的十进制数值。
简介

Brainfuck 是一种极简的编程语言,由 Urban Müller 于 1993 年设计。 它的语法只有 8 个有效指令:><+-.,[]。 虽然语法非常简单,但它是图灵完备的,也就是说理论上可以表达任何可计算的程序。

Brainfuck 程序运行时通常有一条内存带,可以想象成很多连续排列的小格子。 每个格子里保存一个数字,程序有一个“指针”指向当前正在操作的格子。 >< 用来移动指针, +- 用来改变当前格子的数值, . 用来输出当前格子的内容, [] 则用来实现循环。

由于 Brainfuck 的指令非常少,写起来并不直观,所以它常被用作教学、娱乐、代码挑战或展示计算机底层执行过程。 这个可视化工具可以帮助你观察指针移动、内存数值变化以及循环跳转过程,从而更容易理解 Brainfuck 程序是如何一步步运行的。

此程序取消了常见Brainfuck编译器中单元格最大值只有256并且只能输出ASCII字符的限制,因此可用于大数挑战。 记BF(n)为n个能停机的Brainfuck符号所能输出的最大数,它的增长速度应近似于BB(n)。

我们有:
BF(15)>=16 ++++[>++++<-]>.
BF(30)>=256 >+>++++[<[<++>-]<[>++<-]>>-]<.
BF(45)>=2^^9-2 ++++++++[>+[>+[>++<-]>[<+>-]<<-]>[<+>-]<<-]>.
BF(89)>F_{w+1}(2^^^6-2)>葛立恒数 +++[->>>+[-<<+>>]<<[->>>+<+[-[>[[->+<]<[->>>+<<<]>>>[-<<+<+>>>]<-]<<-]>[-<++>]<<]<]<]>>>.