Программа на common lisp

Узнай цену своей работы

Формулировка задачи:

Программа на common lisp Прочитать беззнаковое целое число из стандартного потока ввода и в каждом байте числа обнулить нулевой и седьмой биты и сделать единичными третий и четвертый биты. Результат вывести в стандартный поток вывода.
Получиться должно примерно вот так: 65535 (11111111 11111111) 32382 (01111110 01111110)

Решение задачи: «Программа на common lisp»

textual
Листинг программы
  1. (defun fn (word)
  2.   (check-type word (unsigned-byte 16))
  3.   (logior #b0001100000011000 (logand #b0111111001111110 word)))
  4.  
  5. (defun main ()
  6.   (let ((word (the (unsigned-byte 16) (read))))
  7.     (format t "~&~A (~:*~B)~%~A (~:*~B)~%"
  8.             word
  9.             (fn word))))

Объяснение кода листинга программы

  1. Определяет функцию fn, которая принимает один аргумент word.
  2. Проверяет тип аргумента word с помощью check-type.
  3. Использует logior для побитового ИЛИ аргумента word с фиксированным значением #b0001100000011000.
  4. Использует logand для побитового И первого аргумента word.
  5. Определяет функцию main, которая не принимает аргументов.
  6. Использует let для создания переменной word, которая содержит 16-битное беззнаковое число, считанное с помощью read.
  7. Выводит значение переменной word с помощью format.
  8. Вызывает функцию fn с аргументом word.
  9. Выводит результат вызова функции fn с помощью format.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут