Общее преобразование целого числа в гексагон - PullRequest
8 голосов
/ 05 октября 2009

Есть ли функция, аналогичная (parse-integer "ff": radix 16), которая вернет меня обратно? Если у меня есть INT 255, как я могу преобразовать его в строку FF?

Ответы [ 2 ]

18 голосов
/ 05 октября 2009
(write-to-string 255 :base 16)
14 голосов
/ 07 ноября 2009

Вы также можете использовать format с обозначением радиуса ~X:

CL-USER> (format t "~X" 255)
FF
NIL

Чтобы получить начальный 0x и минимальную ширину, скажем, четырех, дополненную нулями, используйте

CL-USER> (format t "0x~4,'0X" 255)
0x00FF
NIL

Чтобы сделать цифры от 10 до 15 строчными, используйте преобразование регистра директива ~( следующим образом:

CL-USER> (format t "0x~(~4,'0x~)" 255)
0x00ff
NIL
...