このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 131代目 #615 # C++で10進数を2進数に変換するプログラムを配列使って # 順番通りに表示できるようにするのってどうするんですか 十進数を二進数に変換して表示する :- 十進数ならびを読み込む(_十進数ならび), 順に十進数を二進数に変換して表示する(_十進数ならび). 十進数ならびを読み込む(_十進数ならび) :- write('10進数をスペースで区切って何個か入力してください : '), readln(_十進数ならび). 順に十進数を二進数に変換して表示する(_十進数ならび) :- forall( 十進数ならびから十進数を取り出し二進数に変換する(_十進数ならび,_十進数,_二進数表示), 表示する(_十進数,_二進数表示)). 十進数ならびから十進数を取り出し二進数に変換する(_十進数ならび,_十進数,_二進数表示) :- member(_十進数,_十進数ならび), 二進数(_十進数,_二進数表示). 表示する(_十進数,_二進数表示) :- 十進数の表示桁数は十六桁(_十進数,_十進数表示), 二進数表示は四桁ごとに空白を入れて区切って(_二進数表示,_四桁ごとに区切った二進数表示), writef('%w :: %w\n',[_十進数表示,_四桁ごとに区切った二進数表示]). 十進数の表示桁数は十六桁(_十進数,_十進数表示) :- atom_concat(' ',_十進数,_十進数_2), sub_atom(_十進数_2,_,16,0,_十進数表示). 二進数表示は四桁ごとに空白を入れて区切って(_二進数表示,_四桁ごとに区切った二進数表示) :- findall(_四桁の数字列,二進数表示から四桁の数字列を切り取る(_二進数表示,_四桁の数字列),_四桁の数字列ならび), atomic_list_concat(_四桁の数字列ならび,' ',_四桁ごとに区切った二進数表示). 二進数表示から四桁の数字列を切り取る(_二進数表示,_四桁の数字列) :- 順に四桁の数字ならびを移動しながら切り取り(_二進数表示,_四桁の数字ならび), 四桁の数字ならびを四桁の数字列に変換する(_四桁の数字ならび,_四桁の数字列). 順に四桁の数字ならびを移動しながら切り取り(_二進数表示,_四桁の数字ならび) :- findnsols(4,_数字,sub_atom(_二進数表示,_,1,_,_数字),_四桁の数字ならび). 四桁の数字ならびを四桁の数字列に変換する(_四桁の数字ならび,_四桁の数字列) :- atomic_list_concat(_四桁の数字ならび,_四桁の数字列). 二進数(_10進数,_二進数表示) :- 二進数(_10進数,'0000000000000000000000000000000000000000000000000000000000000000',_二進数表示). 二進数(0,A,X) :- sub_atom(A,_,64,0,X),!. 二進数(J,Y,X) :- 二を法とした余りを末尾に付加して行く(J,Y,X). 二を法とした余りを末尾に付加して行く(J,Y,X) :- J > 0, 二を法とした余りを末尾に付加(J,J2,Y,Z), 二進数(J2,Z,X). 二を法とした余りを末尾に付加(J,J2,Y,Z) :- 二を法とした商と余り(J,J2,M), atom_concat(Y,M,Z). 二を法とした商と余り(J,J2,M) :- M is J mod 2, J2 is J // 2.