Let’s enjoy brainfuck. ~メモリー出力編~

コード紹介

今回はメモリーの値を10進数で出力するプログラムの紹介をしたいと思います。

↓コード

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

メモリは右に最大で9使います。もちろん、初期状態はすべて0である必要があります。

メモリはきれいに戻されるのでご安心を。

コメント付き

値 0 商 余 10
[->+<]>
[ 値で始まる 商が0になるまで繰り返す
[ 値で始まる うまく引けた回数が10でなくなるまで繰り返す
>>+>[-]>++++++++++
[-<<<<[->>>+<<]>[<]>>->]
<<<<
] 値で終わる 00??01
+>>>>>+<<[++++++++++<->>]>[<]<[-<<<+>>>]<[-<+>]>>>-<<<<
] 商で終わる
>>++++++++[<++++++>-]<-<<
[
[->+<]>>[<+<+>>-]<.[->+<]<[->+>-<<]>>>[-<++++++++++>]<-<<<
]
>>[-]>[-<<<+>>>]<<<

実行してみよう

Brainfuckを実行・デバッグできるものを作りました。

↓入力された文字の1バイト分を10進数で出力

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

↓0のときに-をして(255)10進数で出力

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