Prolog:如何在Prolog中将十六进制值转换为整数

时间:2019-01-25 07:18:13

标签: prolog hex

Prolog:如何在Prolog中将十六进制值转换为整数

我的输入值为0x10,我想在Prolog中增加它。

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

但这给出了错误,说_my_var不是整数

1 个答案:

答案 0 :(得分:1)

您无需进行任何转换,Prolog可以理解十六进制文字。默认情况下,它以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.

如果您有其他疑问,请弄清楚它是什么。