9

ご存知のように、elispはさまざまな基数の数値をサポートしています。たとえば#20r1j、基数10の39に相当します。#20r1jとして表示したい#20r1j。しかし(format "%d" #20r1j)、私に与えます39。番号を元のベースに保つ方法は?

4

1 に答える 1

13

フォーマット文字列として、表示できるベースはかなり制限されています。

%dは、10進数(%o 8進数、%x 16進数)の数値として出力することを意味します。
%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までの実行の許容値。

于 2012-04-28T04:57:40.527 に答える