21 elisp
给定一个十进制数列表,如何将每个数字转换为其等效的十六进制值,反之亦然?
例如:
(convert2hex 255 64 64); -> (FF 40 40) (convert2dec FF 40 40); -> (255 64 64) (convert2hex 255 64 64 255 64 64 128) (convert2dec FF 40 40 FF 40 40 80)
hax*_*ney 30
十六进制数:
(format "%X" 255) ;; => "FF"
Run Code Online (Sandbox Code Playgroud)
您还可以使用以下值填充值:
(format "%03X" 255) ;; => "0FF"
Run Code Online (Sandbox Code Playgroud)
其中0是用于填充的字符,3是要填充的空格数.
十六进制字符串到数字
(string-to-number "FF" 16) ;; => 255
Run Code Online (Sandbox Code Playgroud)
的16意思是"读为基础-16".
Gar*_*ees 15
如果您只想在Emacs中键入十六进制数字,则无需调用string-to-number,只需使用#x阅读器语法:
#xFF
==> 255
Run Code Online (Sandbox Code Playgroud)
您还可以使用#b二进制,#o八进制数或#36r基数36:
#b10011001
==> 153
#o777
==> 511
#36rHELLO
==> 29234652
Run Code Online (Sandbox Code Playgroud)
请参阅Emacs Lisp手册中的3.1整数基础知识