首页 > 解决方案 > 在 SWI-Prolog 中是否有一种简单的方法可以使用 REPL 将数字从一个基数转换为另一个基数?

问题描述

在使用 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 . 

标签: prologswi-prolog

解决方案


在 SWI-Prolog 中,您可以使用rfor radix in format/2

以基数数字参数表示法打印整数。因此 ~16r 以十六进制打印其参数。参数应在 [2, ... , 36] 范围内。小写字母用于 9 以上的数字。冒号修饰符可用于形成特定于语言环境的数字组。

例子:

?- 格式(“~2r”,0xFF)。
11111111
真的。

推荐阅读