Пролог: как преобразовать шестнадцатеричное значение в целое в Прологе - PullRequest
0 голосов
/ 25 января 2019

Пролог: как преобразовать шестнадцатеричное значение в целое число в Прологе

Мое входное значение 0x10, и я хочу увеличить его в Прологе.

increment(_incremented_value) :-
  _my_var= 0x10,
  _incremented_value is _my_var + 1.

но это дает ошибку, говоря _my_var не является целым числом

1 Ответ

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

Вы ничего не конвертируете, Пролог понимает шестнадцатеричные литералы.По умолчанию он печатает целые числа в базе 10, поэтому вы получаете:

?- X = 0x10.
X = 16.

?- X = 0xAB.
X = 171.

Вы можете использовать форматированную печать для печати целого числа в любой базе, которая вам нравится.В SWI-Prolog:

?- X = 0xFF, format("~2r", [X]).
11111111
X = 255.

?- X = 0xFF, format("~36r", [X]).
73
X = 255.

?- X = 3, format("~3r", [X]).
10
X = 3.

Если вы спрашиваете что-то еще, вы должны уточнить, что это такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...