我想要的只是形式的谓词
parse_hex(H, N).
可以在十六进制字符串和prolog整数之间转换。显然,我可以自己实现此功能,但我想知道是否有内置功能。我找不到一个内置功能,但似乎必须有一种方法可以实现。
答案 0 :(得分:1)
鉴于标准Prolog支持十六进制数字,如果用字符串表示您是Prolog原子:
parse_hex(H, N) :-
atom_concat('0x', H, HexaAtom),
atom_codes(HexaAtom, HexaCodes),
number_codes(N, HexaCodes).
如果确实有字符串而不是原子,请参阅Prolog文档中有关将其转换为原子的信息。例如。 SWI-Prolog提供了atom_string/2
双向内置谓词。
通话示例:
?- parse_hex('ff', N).
N = 255.