Prolog:如何在Prolog中将十六进制值转换为整数
我的输入值为0x10
,我想在Prolog中增加它。
increment(_incremented_value) :-
_my_var= 0x10,
_incremented_value is _my_var + 1.
但这给出了错误,说_my_var
不是整数
答案 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.
如果您有其他疑问,请弄清楚它是什么。