例如,在使用REPL的SWI-Prolog中,可以很容易地从任意基数转换为基数10
?- X = 16'FF. X = 255. ?- X = 2'11111111. X = 255.
但是失败了。 (没想到它会起作用,但是会显示我的想法。)
?- 2'X = 16'FF. ERROR: Syntax error: Operator expected ERROR: ERROR: ** here ** ERROR: 2'X = 16'FF .
在SWI-Prolog中,您可以将r中的基数用于format/2:
r
format/2
以基数数字参数表示法打印整数。因此〜16r将其自变量输出为十六进制。参数应在[2,...,36]范围内。小写字母用于9以上的数字。冒号修饰符可用于形成区域设置特定的数字组。
示例:
?-format(“〜2r”,0xFF)。11111111真正。
这是作为答案发布的评论,因为它需要注释无法设置的格式。
如果您有兴趣捕获输出以表示要在程序中使用的原子,字符串,字符或字符代码,则可以使用format / n的其他变体。请参阅:format/2
format/3