如何在prolog中将十进制转换为二进制数。

时间:2012-12-13 16:41:00

标签: prolog

dec_bin(1,1).
dec_bin(N,B):-N>1,X is N mod 2,Y is N//2,dec_bin(Y,B1),B=B1+X.

这给了我输出:

?- dec_bin(12,K).
K = 1+1+0+0.

但我只想要1100没有'+'符号。请有人帮帮我..

1 个答案:

答案 0 :(得分:1)

我认为你所照顾的是atom_concat/3。 另请注意,您的过程在输入编号0上失败。

dec_bin(0,'0').
dec_bin(1,'1').
dec_bin(N,B):-N>1,X is N mod 2,Y is N//2,dec_bin(Y,B1),atom_concat(B1, X, B).

? - dec_bin(12,K)。 K ='1100'