Brainfuck语言实战

本文介绍了一种极简编程语言Brainfuck的基本运算操作,包括加法、减法、乘法及除法的实现方法,并提供了相应的代码示例。

目录

一,加减乘除

二,逻辑运算

三,SPOJ TEST


一,加减乘除

1,加法

用BF语言做加法,输入a+b,计算a+b=c,并输出c,假设a b c都是一位数(下同)

看了百度百科上的代码:

,>++++++[<-------->-],,[<+>-],<.>.

我最开始写的解释器是用cin接收一个字符,接收不了换行符,所以略改之后变成:

,>++++++[<-------->-],,[<+>-]<.>

运行示例:

后来觉得还是应该能输入换行符才对,这样才是完备的,所以又在末尾补上 ,. 得到

,>++++++[<-------->-],,[<+>-]<.>,.

改了解释器之后,运行:

2,减法

原理和加法一样

,>,,>++++++[<-------->-]<[<->-]<.> 

运行示例:

改了解释器之后,运行,>,,>++++++[<-------->-]<[<->-]<.> ,.

3,乘法

,>,,>++++++++[<------<------>>-]<<
[>[>+>+<<-]>>[<<+>>-]<<<-]
>>>++++++[<++++++++>-]<.,.

4,除法

除法果然比乘法复杂很多很多,暂时不研究这个。

二,逻辑运算

1,整数转化成布尔值

简单版:

,[->[-]+<]>.

可视化版:

,>++++++[-<-------->]<
[->[-]+<]
>>++++++[-<++++++++>]<.

    

2,或

简单版:

,[->>[-]+<<]
>,[->[-]+<]
>.

可视化版:

,>++++++[-<-------->]<
[->>[-]+<<]
>,>>++++++[-<<-------->>]<<
[->[-]+<]
>>++++++[-<++++++++>]<.

      

3,且

简单版:

,>,<
[->[->[-]+<]<]
>>.

Brainfuck,是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf***,甚至被简称为BF。 【内含:BF解释器,BF解释器源码,BF写的几个小程序】 ReadMe: Brainfuck 编程语言 [图灵完全] [8条指令] 语法: > 指针加一 < 指针减一 + 指针指向的字节的值加一 - 指针指向的字节的值减一 . 输出指针指向的单元内容(ASCII码) , 输入内容到指针指向的单元(ASCII码) [ 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处 ] 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处 特性: 8KB 环状内存(初始化为0) <>操作不会越界 加减操作环状 +-操作不会溢出(0xFF + 为 0x00) 文件说明: bf.exe 解释器 Usage: bf [-options] source where options include: -b buffered input (default mode) 缓冲输入(按回车才输入,默认) -i not buffered input 无缓冲输入 -e not buffered input without echo 无缓冲输入且不回显 bf.cpp 解释器的源代码(纯C实现) hello.txt HelloWorld程序 up.txt 这个程序将你的输入(小写字母)转换为大写(回车结束) add.txt 这个程序对两个一位数做加法,并输出结果(如果结果也只有一位数的话)(例如:输入2+3) mul.txt 这个程序对两个一位数做乘法,并输出结果(如果结果也只有一位数的话)(例如:输入2*3) factor.txt 这个程序分解多位数的因子,并输出结果(例如:输入1000) numwarp.txt 这个程序输入 ()-./0123456789abcdef 和空格的字符串,显示很有趣的排列结果(例如:输入520 1314) prime.txt 这个程序输入一个多位整数,输出从1到这个整数间的所有素数(例如:输入100) quine.txt 这个程序输出源代码本身 [以上程序,基本上依靠回车确认]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值