Регистрация | Войти
Lisp — программируемый язык программирования
RSS
Программа на common lisp
lisp123 - 23.10.2016 23:11, Сообщений - 3
Прочитать беззнаковое целое число из стандартного потока ввода и в каждом байте числа обнулить нулевой и седьмой биты и сделать единичными третий и четвертый биты. Результат вывести в стандартный поток вывода.

Получиться должно примерно вот так:
65535 (11111111 11111111) 
32382 (01111110 01111110)
[#]
Тебе на cyberforum.ru
den73 - 24.10.2016 08:18
[#]
Добрый день!

У меня получилось приблизительно так (без форматирования вывода):

<code>
(let ((number (read)))
       (if (and (typep number 'integer) (>= number 0))
           (progn
         (setf (ldb (byte 1 0) number) 0)
         (setf (ldb (byte 1 7) number) 0)
         (setf (ldb (byte 1 3) number) 1)
         (setf (ldb (byte 1 4) number) 1)
         (let ((bits '()))
           (dotimes (position (integer-length number) bits)
             (push (ldb (byte 1 position) number) bits))
           (format t "~A" bits)))
           (format t "Not an unsigned integer")))
</code>
Hedin - 24.10.2016 14:46
[#] Ответ на комментарий от Hedin 24.10.2016 14:46
Не доделал немного. Обнулил только в первом байте.
Hedin - 24.10.2016 17:12
@2009-2013 lisper.ru