在brainfuck中打印字符

时间:2014-02-15 14:29:22

标签: input char brainfuck

我是这种语言的新手,我正在scala中构建brainfuck解释器我面临一个问题,如果内存索引的值大于127,我应该打印什么? 如果值大于127,真正的脑筋解释器打印是什么? 例如
存储器[索引] = 178 什么时候 ”。” (打印命令)被称为什么应该打印itfpreter打印? 我在ideone.com上编译了一些代码,但它显示运行时错误 以下代码:

+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++ [+ LT;。 - ]

2 个答案:

答案 0 :(得分:2)

没有详尽的语言规范,但在大多数解释器中,递增一个保持其最大值的单元格(使用+命令)将使其达到最小值,反之亦然。

答案 1 :(得分:2)

.的{​​{3}}只需调用putchar(),但单元格中的unsigned char值为:

...
case '.': putchar(a[p]); fflush(stdout); break;
...

这意味着字符128-255如何显示取决于终端使用的编码。如果我将我的设置为original implementation,则字符32-255如下所示:

example output

在你的情况下,Scala对数字的toChar方法听起来应该做你想做的事情;也就是说,打印扩展的ASCII可能只是奇怪。