这周百度杯的misc3——坑,刚开始在线解密不对,开始怀疑解释器,所以手动解了一次,也正是因为此,学习了一下brainfuck语言,好像挺好玩的样子!
贴出语法:
字符
|
含义
|
>
|
指针加一
|
<
|
指针减一
|
+
|
指针指向的字节的值加一
|
-
|
指针指向的字节的值减一
|
.
|
输出指针指向的单元内容(ASCⅡ码)
|
,
|
输入内容到指针指向的单元(ASCⅡ码)
|
[
|
如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处
|
]
|
如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处
|
Brainfuck
|
C
|
>
|
++ptr;
|
<
|
--ptr;
|
+
|
++*ptr;
|
-
|
--*ptr;
|
.
|
putchar(*ptr);
|
,
|
*ptr =getch();
|
[
|
while (*ptr) {
|
]
|
}
|
下面贴一个例子,可以手动尝试一下:
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< +++++ +++[- >---- ----< ]>--- --.+. ----- -.<++
+++++ [->++ +++++ <]>++ ++.-- --.<+ +++++ [->-- ----< ]>--- ----- .----
--.++ +++++ +.<++ +[->- --<]> --.++ +++.+ +++.- .<+++ +++[- >++++ ++<]>
+++++ +++.< +++++ ++[-> ----- --<]> ---.+ +++++ +.+++ ++.-- ----- .<+++
++++[ ->+++ ++++< ]>+++ .<+++ ++++[ ->--- ----< ]>--- ----- .<+++ ++++[
->+++ ++++< ]>+++ .<+++ ++++[ ->--- ----< ]>.++ ++.-- -.--- -.<++ +++++
[->++ +++++ <]>++ ++.<+ +++++ [->-- ----< ]>--- ----- ---.- --.<+ +++++
+[->+ +++++ +<]>+ ..<++ ++++[ ->--- ---<] >---- --.-- -.+.+ ++.-- ---.+
++++. ----- ----. <++++ ++++[ ->+++ +++++ <]>++ +++++ +++++ +.<
+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< +++++ +++[- >---- ----< ]>--- --.+. ----- -.<++
+++++ [->++ +++++ <]>++ ++.-- --.<+ +++++ [->-- ----< ]>--- ----- .----
--.++ +++++ +.<++ +[->- --<]> --.++ +++.+ +++.- .<+++ +++[- >++++ ++<]>
+++++ +++.< +++++ ++[-> ----- --<]> ---.+ +++++ +.+++ ++.-- ----- .<+++
++++[ ->+++ ++++< ]>+++ .<+++ ++++[ ->--- ----< ]>--- ----- .<+++ ++++[
->+++ ++++< ]>+++ .<+++ ++++[ ->--- ----< ]>.++ ++.-- -.--- -.<++ +++++
[->++ +++++ <]>++ ++.<+ +++++ [->-- ----< ]>--- ----- ---.- --.<+ +++++
+[->+ +++++ +<]>+ ..<++ ++++[ ->--- ---<] >---- --.-- -.+.+ ++.-- ---.+
++++. ----- ----. <++++ ++++[ ->+++ +++++ <]>++ +++++ +++++ +.<
<!----><!--]--><!--+++--><!--]-->