В SWI-Prolog есть простой способ конвертировать числа из одной базы в другую, используя REPL? - PullRequest
0 голосов
/ 21 января 2019

В SWI-Prolog с использованием REPL можно легко конвертировать из любой базы в базу 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 . 

1 Ответ

0 голосов
/ 21 января 2019

В SWI-Prolog вы можете использовать r для radix in format/2:

Вывести целое число в основную числовую запись аргумента Таким образом, ~ 16r выводит свой аргумент в шестнадцатеричном виде. Аргумент должен быть в диапазоне [2, ..., 36]. Строчные буквы используются для цифр выше 9. Модификатор двоеточия может использоваться для формирования групп цифр, специфичных для локали.

Пример:

?- format("~2r", 0xFF).
<b>11111111</b>
true.
...