4

最初に別の基数に変換せずに、いくつかの 16 進数を Lisp で加算する方法を知りたいです。これはどのように行うことができますか?

4

3 に答える 3

6

一般的な Lisp:

> (setf *print-base* 16)

> (setf *read-base* 16)

> (+ a d)
17
于 2011-04-21T20:42:17.903 に答える
3

16 進数は、0 から F までの数字を使用した数字の単なる文字表現です。Lisp の実装では、通常、加算の前に 16 進数を内部の 2 進数表現に変換します。それが目的のプレゼンテーション形式である場合は、合計を 16 進数で出力できます。

(format T "~x" (+ #xA #x2))

#\A プラス #\2 が #\C のように、16 進文字数字のシンボリック加算のロジックを実装する関数を作成し、単一の 16 進数を超えたい場合はキャリーを処理できます。しかし、そのような関数は、シンボリック 16 進加算のアルゴリズムを実証するための演習としてはほとんど役に立ちません。

于 2011-04-21T16:25:20.393 に答える