Prolog中的八进制到二进制数转换

时间:2015-12-06 00:03:32

标签: binary prolog octal

这是我尝试将八进制数转换为二进制数。 我想要做的是找到给定八进制数的剩余部分除以10得到每个数字并将该数字转换为3位二进制数。但是这段代码没有产生任何输出。请帮忙。 提前谢谢。

function gatewayFunction( form ) {
  ...
  return is_payment_complete;
}

1 个答案:

答案 0 :(得分:2)

编码后的数字最好是数字列表 - 不是原子!

使用n_base_digits/3,我们可以编写以下示例查询:

?- use_module(library(clpfd)).
true.

?- n_base_digits(27, 2, Binary).
Binary = [1,1,0,1,1].

?- n_base_digits(N, 2, [1,1,0,0,1,0,0,1]).
   N = 201
;  false.

?- n_base_digits(N, 2, [1,1,0,0,1,0,0,1]),
   n_base_digits(N, 8, Octal).
   N = 201, Octal = [3,1,1]
;  false.