このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354070278/439
#  [1] プログラム演習  
#  [2] 入力した文字列をASCIIコードに応じた2進数に変換するプログラムを作成せよ。 
#  (注釈:百文字程度の変換を行えるようにすること) 
#  例:abc→011000010110001001100011 
#  また、2進数から文字列に戻す変換を行うプログラムも作成せよ。 
#  例:011000010110001001100011→abc 
#  

'入力した文字列をASCIIコードに応じた2進数に変換する' :-
        入力した文字列を(_入力した文字列),
        'ASCIIコードに応じた2進数に変換する'(_入力した文字列,_2進数ならび),
        flatten(_2進数ならび,_平坦な2進数ならび),
        atomic_list_concat(_平坦な2進数ならび,_表示文字列),
        writef('%t\n',[_表示文字列]).

'ASCIIコードに応じた2進数に変換する'(_入力した文字列,_2進数ならび) :-
        atom_codes(_入力した文字列,Codes),
        findall(_2進数,(
                    member(_ASCIIコード,Codes),
                    'ASCIIコードに応じた2進数'(_ASCIIコード,_2進数)),
                _2進数ならび).

'ASCIIコードに応じた2進数'(_ASCIIコード,_2進数) :-
        'ASCIIコードに応じた2進数'(_ASCIIコード,[],_2進数).

'ASCIIコードに応じた2進数'(0,L,L) :- !.
'ASCIIコードに応じた2進数'(N,L1,L) :-
        N_2 is N // 2,
        _b is N mod 2,
        'ASCIIコードに応じた2進数'(N_2,[_b|L1],L).