来不及了,直接用brainfuck撸一串代码来输出字符串“KUXAI”
+++++ +++++
[
> +++++ +++
< -
]
> ----- .
++++++++++ .
+++ .
-----------------------.
+++++ +++ .这段代码真的是输出KUXAI
不信的话,大家自己去网页上编译一下,要不然我乱说你们也不知道.
brainfuck估计是世界上最简单(最难)的计算机语言了,它的所有命令就只有8种:
接着,我们来简单的解析一下输出KUXAI的那段代码
+++++ +++++ 一开始指针默认在0位,0位的默认值是0,现在做10次+1运算
[
> +++++ +++ 指针向右移动1位,做8次+1运算
< - 指针向左移动1位(指向了0位),做1次-1运算
] 指针指向的位置的数值不为0则跳到[处,即[]内的运算要进行10次
跳出[]循环的时候,位置1的值已经变成80了,
> ----- . 右移1位,做5次-1运算变成75(ascii),并以字符形式显示在终端,K
++++++++++ . 做10次+1运算变成85(后面就不写了)
+++ .
-----------------------.
+++++ +++ .这段代码真的是输出KUXAI
为什么我先用循环把第1位的初始值加到80呢,因为,我担心我的手会按“+”按抽筋。
显然,我在写代码的时候已经查到了KUXAI的ASCII值,作为一个程序员,真的拿着对照表去看是一件很没品的事 ,下面,我们用python求出字符串的ascii值
>>> ascii_list=list(map(ord,list('KUAXI')))
>>> print(ascii_list)
[75, 85, 65, 88, 73]
说了这么多,我们还没有脱离热闹的层次,所谓brainfuck的门道,是它可以加深 我们对“图灵完备”的理解。这种语言看着有些无厘头,可是它确实图灵完备的,说人话就是它可以解决任何计算问题。 不过,本文不准备展开讲图灵完备的概念,毕竟我是个看热闹的人。