序言:如何为十六进制值转换为整数的Prolog
我的输入值0x10
,我想增加它的序言。
increment(_incremented_value) :-
_my_var= 0x10,
_incremented_value is _my_var + 1.
但这给错误,说_my_var
不整
你不转换什么,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.
如果你问别的东西,你要弄清楚它是什么。