众所周知,elisp支持不同基数的数字,例如#20r1j
等于基数为10的39。我想将#20r1j
显示为#20r1j
。但是(format "%d" #20r1j)
给了我39
。如何将号码保留在原来的基础上?
答案 0 :(得分:9)
作为格式字符串,您可以显示的基础非常有限:
%d表示以十进制数字打印(%o八进制,%x十六进制) %X与%x类似,但使用大写。
您可以使用calc库为您管理,但是:
(require 'calc-bin)
(let ((calc-number-radix 20))
(math-format-radix 39))
"1J"
(let ((calc-number-radix 20))
(math-format-radix #20r1j))
"1J"
与您使用的读取语法一样,calc-number-radix
的允许值从2到36运行。