如何在elisp下显示不同基数的数字?

时间:2012-04-28 02:58:04

标签: emacs elisp

众所周知,elisp支持不同基数的数字,例如#20r1j等于基数为10的39。我想将#20r1j显示为#20r1j。但是(format "%d" #20r1j)给了我39。如何将号码保留在原来的基础上?

1 个答案:

答案 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运行。