常见的lisp整数到十六进制转换

Mik*_*012 8 hex decimal common-lisp

是否有一个类似的函数(解析整数"ff":基数16)将带我回到另一个方向?如果我有int 255如何将其转换为字符串ff?

sep*_*p2k 18

(write-to-string 255 :base 16)
Run Code Online (Sandbox Code Playgroud)


seh*_*seh 14

您还可以使用format~X基数标志:

CL-USER> (format t "~X" 255)
FF
NIL
Run Code Online (Sandbox Code Playgroud)

要获得前导0x和最小宽度,比如四个用零填充,请使用

CL-USER> (format t "0x~4,'0X" 255)
0x00FF
NIL
Run Code Online (Sandbox Code Playgroud)

要强制数字从10到15为小写,请使用大小写转换指令 ~(,如下所示:

CL-USER> (format t "0x~(~4,'0x~)" 255)
0x00ff
NIL
Run Code Online (Sandbox Code Playgroud)