Let’s enjoy brainfuck. ~メモリー出力編~
コード紹介
今回はメモリーの値を10進数で出力するプログラムの紹介をしたいと思います。
↓コード
[->+<]>[[>>+>[-]>++++++++++[-<<<<[->>>+<<]>[<]>>->]<<<<]+>>>>>+<<[++++++++++<->>]>[<]<[-<<<+>>>]<[-<+>]>>>-<<<<]>>++++++++[<++++++>-]<-<<[[->+<]>>[<+<+>>-]<.[->+<]<[->+>-<<]>>>[-<++++++++++>]<-<<<]>>[-]>[-<<<+>>>]<<<
メモリは右に最大で9使います。もちろん、初期状態はすべて0である必要があります。
メモリはきれいに戻されるのでご安心を。
コメント付き
値 0 商 余 10 [->+<]> [ 値で始まる 商が0になるまで繰り返す [ 値で始まる うまく引けた回数が10でなくなるまで繰り返す >>+>[-]>++++++++++ [-<<<<[->>>+<<]>[<]>>->] <<<< ] 値で終わる 00??01 +>>>>>+<<[++++++++++<->>]>[<]<[-<<<+>>>]<[-<+>]>>>-<<<< ] 商で終わる >>++++++++[<++++++>-]<-<< [ [->+<]>>[<+<+>>-]<.[->+<]<[->+>-<<]>>>[-<++++++++++>]<-<<< ] >>[-]>[-<<<+>>>]<<<
実行してみよう
Brainfuckを実行・デバッグできるものを作りました。
↓入力された文字の1バイト分を10進数で出力
, [->+<]>[[>>+>[-]>++++++++++[-<<<<[->>>+<<]>[<]>>->]<<<<]+>>>>>+<<[++++++++++<->>]>[<]<[-<<<+>>>]<[-<+>]>>>-<<<<]>>++++++++[<++++++>-]<-<<[[->+<]>>[<+<+>>-]<.[->+<]<[->+>-<<]>>>[-<++++++++++>]<-<<<]>>[-]>[-<<<+>>>]<<<
↓0のときに-をして(255)10進数で出力
- [->+<]>[[>>+>[-]>++++++++++[-<<<<[->>>+<<]>[<]>>->]<<<<]+>>>>>+<<[++++++++++<->>]>[<]<[-<<<+>>>]<[-<+>]>>>-<<<<]>>++++++++[<++++++>-]<-<<[[->+<]>>[<+<+>>-]<.[->+<]<[->+>-<<]>>>[-<++++++++++>]<-<<<]>>[-]>[-<<<+>>>]<<<