prolog - 在 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 .
解决方案
在 SWI-Prolog 中,您可以使用r
for radix in format/2
:
以基数数字参数表示法打印整数。因此 ~16r 以十六进制打印其参数。参数应在 [2, ... , 36] 范围内。小写字母用于 9 以上的数字。冒号修饰符可用于形成特定于语言环境的数字组。
例子:
?- 格式(“~2r”,0xFF)。 11111111 真的。
推荐阅读
- javascript - 我如何从选择查询 mariadb nodejs 返回行
- rust - 我在哪里可以找到我电脑上的 `std::collections` 模块?
- python - 并行时间功能和非阻塞输入
- javascript - 我可以在单击图标时显示确认信息吗?
- r - 如何在 R 中生成这样的点图?
- javascript - 如何暂停承诺,直到我在 js、firebase 中获得用户操作?
- php - 如何在 PHP 中更改 Google 表格的缩放级别
- r - R降价主题不编织
- javascript - 如何淡化元素背景图像的边缘以与主背景图像融合?
- swift - 使用 GCD,DispatchGroup 如何在组离开之前(或之后)从后台队列在主队列上运行项目,而不会出现死锁?