12月17日brainfuck程序集锦
这是12月17日写的几个brainf程序,只加了少量注释。参考上篇关于brainf的博客。
dec2hex.b
十进制转十六进制。支持多组数据,一行一个。
负1备用
-
读入十进制数
>>>++++++++++,----------[[
<[-<+>]
<[->++++++++++<]
>>>++++++[-<------>]<--
[-<+>]
++++++++++,----------]
短除(确信)
<[
-<+>[ -<+>[ -<+>[ -<+>[ -<+>[
-<+>[ -<+>[ -<+>[ -<+>[ -<+>[
-<+>[ -<+>[ -<+>[ -<+>[ -<+>[
->+<<[-]
>>[<]
]]]]]]]]]]]]]]]
>]
获得0~F的ASCII
>+++++++[-<+++++++>]
<[->+>+>+>+>+>+>+>+>+>+<<<<<<<<<<]
>->>+>++>+++>++++>+++++>++++++>+++++++>++++++++
>>>>>>++++++++[->++++++++<]
>[-<+<+<+<+<+<+>>>>>>]
<++++++<+++++<++++<+++<++<+
各数位加1方便遍历
[<]<<+[<+]
遍历数位
>[>]<[
把16个ASCII中的前(数位加1)个左移一格
[-
>>[>]>[-<+>]
<[<]<]
输出最后左移的一个数
>>[>]<.
把剩下的ASCII也左移一格
>>[
[-<+>]
>]
<<[<]<<]
输出换行符
++++++++++.
清理
>>>[>]<[[-]<]<<[-]
继续读入和计算直到EOF或连续两个换行
->>>++++++++++,----------]
cellsize.b
计算单元格比特数。把1不停乘256直到变成0为止。在32位或64位不优化解释器上大概会炸。
开始乘
>+[
记比特数加8
>++++++++
当前数乘16
<[-<++++++++++++++++>]
再乘16
<[->++++++++++++++++<]
>]
计算比特数十进制
<-
>>[
-<+>[
-<+>[ -<+>[ -<+>[ -<+>[
-<+>[ -<+>[ -<+>[ -<+>[
->+<<[-]
>>[<]
]]]]]]]]
]
>]
输出比特数
<<+[-
>++++++[-<++++++++>]
<.[-]
<+]
输出“ bit cells”
>++++[-<++++++++>]
>++++++++++[-<++++++++++>]
>++++++++++[-<++++++++++++>]
<<<.
>--.
+++++++.
>----.
<<.
>------.
++.
+++++++..
>-.
>++++++++++.
2powers.b
输出2的n次方直到单元格装不下为止。参考上个程序。
+[
[->+<]
>[-<++>>>++<<]
-
>>[
-<+>[ -<+>[ -<+>[ -<+>[
-<+>[ -<+>[ -<+>[ -<+>[ -<+>[
->+<<[-]
>>[<]
]]]]]]]]]
>]
<<+[-
>++++++[-<++++++++>]
<.[-]
<+]
++++++++++.[-]
<]