"Перевод числа из одной системы счисления в другую"
Страницы: 1
Пользователь: slivka Сообщений: 4 Статус: Незримый Зарегистрирован: 27 ноября 2008, 4:56 Был:30 ноября 2008, 18:02 | Дата: 27 ноября 2008, 5:19 Сообщение № 1 |
Как перевести число из одной системы счисления в другую, используя рекурсию |
Пользователь: slivka Сообщений: 4 Статус: Незримый Зарегистрирован: 27 ноября 2008, 4:56 Был:30 ноября 2008, 18:02 | Дата: 27 ноября 2008, 5:20 Сообщение № 2 |
РЕКУРСИЕЙ (defun encode (n base &optional tail) (if (zerop n) (format t "~{~C~}"(or tail '(#\0))) (encode (truncate n base) base (cons (digit-char (rem n base) base) tail)))) TRUNCATE и REM - вычисляют неполное частное и остаток. (DIGIT-CHAR n base) - переводит число n, меньшее base, в соответствующую литеру-цифру. ZEROP - проверяет аргумент на равенство 0. FORMAT - распечатывает список цифр в красивом виде. |
Страницы: 1