FC2ブログ

水雲風

とりあえず人生を記録と妄想の吐き出しの地

BrainFuckプログラミング - 数(1桁)の奇数偶数判定 -(2010/10/09)



上記動画でプログラミング言語BrainFuckを知りました。
なんとなく記述の大変さを感じてみたくて、入力した数字(1桁)が偶数だったら0、奇数だったら1を表示するプログラムを作成してみました。
制限のいろいろあるやることは単純なプログラムなのですが組むのに結構苦労しました。
なるほど、brainがfuckされます。

以下が偶数奇数判定のプログラムとなります。

1.
2.
3.
4.
5.
>>>+<<<
>,
>++++++[<-------->-]<
[-[->]<]>>>
>++++++[<++++++++>-]<.

上記プログラムの解説を以下に示します。
なお、あわせて命令実行後のメモリの状態を表で示しています(薄赤色部分がポインタの示す位置)。

1. >>>+<<<
ポインタの位置は変更せずに4番目のメモリの値を1とする。
0 0 0 1 0 0

2. >,
2番目のメモリに値を入力する。
0 入力値 0 1 0 0

3. >++++++[<-------->-]<
入力値から48を引く(-8を6回繰り返す)。
※ 0のascii文字コードは48である。
0 入力値 - 48 0 1 0 0

4. [-[->]<]>>>
入力値 - 48の値を1ずつ減算していき値が0になった場合に、偶数時には2番目のメモリ、奇数時には1番目のメモリの位置にいるようにする
次に、右に3つ移動し、偶数時には5番目のメモリ、奇数時には4番目のメモリの位置にいるようにする。
0 0 0 1 0 0
奇数↑ 偶数↑

5. >++++++[<++++++++>-]<.
現在の位置に48を足して(+8を6回繰り返す)、出力する。
※ 0のascii文字コードは48である。
0 0 0 1
+48
0
+48
0
奇数時 偶数時


スポンサーサイト



  1. 2010/10/09(土) 16:48:42|
  2. 計算機
  3. | トラックバック:0
  4. | コメント:0
<<メタルラックの目隠し | ホーム | 大山ダウンヒルサイクリング>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://mechagappa.blog14.fc2.com/tb.php/729-5b47e8a1
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

おげれつ脱脂綿

カレンダー

01 | 2020/02 | 03
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29

カテゴリー

月別アーカイブ(タブ)

最近の記事

最近のコメント

最近のトラックバック

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

全ての記事を表示する

全ての記事を表示する