跳至正文
LNN的博客!

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次方直到单元格装不下为止。参考上个程序。
+[ 
  [->+<] 
  >[-<++>>>++<<] 
  -
  >>[ 
    -<+>[ -<+>[ -<+>[ -<+>[ 
    -<+>[ -<+>[ -<+>[ -<+>[ -<+>[ 
      ->+<<[-] 
      >>[<] 
    ]]]]]]]]] 
  >] 
  <<+[- 
    >++++++[-<++++++++>] 
    <.[-] 
  <+] 
  ++++++++++.[-] 
<]

评论区

加载基于 GitHub issues 的 utteranc.es 评论区组件……