Brainfuck程序PuraPuraNanya无法输出20个+的问题排查请求
Brainfuck程序无法打印20个
+的问题排查与修复 核心问题
你的程序存在两个关键错误,导致输出不符合预期:
1. 打印的字符ASCII值不匹配
+对应的ASCII码是43,但你程序最终打印的内存单元数值并非43:
- 初始第一个内存单元(cell 0)被设为10
- 循环执行10次后,第二个内存单元(cell 1)的值为10(每次循环加1,10次累加得10)
- 执行
>++后,cell 1的值变为12,对应ASCII换页符(不可打印或显示为特殊符号),这就是不同编译器输出异常的原因。
2. 仅执行一次打印操作
你只使用了一个.指令,该指令仅会打印单个字符,无论数值是否正确,都无法输出20个+。
修正后的程序
以下是实现打印20个+的简洁方案:
++++++++++++++++++++[>+++++++++++++++++++++++++++++++++.<-]
代码解释
++++++++++++++++++++:将cell 0的值设为20,控制循环打印的次数[>+++++++++++++++++++++++++++++++++.<-]:>:移动到cell 1+++++++++++++++++++++++++++++++++:将cell 1的值设为43(正好是+的ASCII码).:打印当前cell的字符(即+)<:回到cell 0-:cell 0的值减1,当值为0时循环结束,共完成20次打印
内容的提问来源于stack exchange,提问作者W Kristianto
相关产品推荐
相关产品推荐

