如何在Brainfuck中使用逗号(,)命令?
关于Brainfuck逗号(
,)命令的工作原理与你的代码问题 逗号命令的本质:
,命令是从键盘标准输入读取一个字节的ASCII值,存入当前指针指向的内存单元格,和之前用.输出的内容完全无关。你之前把输入输出的数据流搞混了——.是把内存数据打印到屏幕,,是从键盘拿数据进内存,两者完全独立,没有关联。你的代码无效的原因:
你写的代码:++++++++++[>++++++<-]>+++++. <,执行步骤拆解:
++++++++++:指针0单元格设为10[>++++++<-]:循环10次给指针1加6,最终指针1值为60,指针0归零>+++++:指针移到1,再加5,指针1值为65(对应ASCII的'A').:输出'A'到屏幕<:指针移回0,:此时程序会暂停,等待你手动从键盘输入一个字符,把该字符的ASCII值存入指针0。你以为它会自动读取刚才输出的'A',这是核心误解。
加法程序的正确示例:
要是你想实现“输入两个字符,输出它们ASCII值之和对应的字符”,可以用这段代码:,>,<[->+<]>.逻辑说明:
,:输入第一个字符,存在指针0>:指针移到1,:输入第二个字符,存在指针1<:指针移回0[->+<]:循环将指针0的值加到指针1,直到指针0归零(完成加法操作)>:指针移到1.:输出相加结果对应的ASCII字符
内容的提问来源于stack exchange,提问作者WrathOfCon
相关产品推荐
相关产品推荐

