§28. Операции с целыми числами | Задачи (курс pol 136 ч.)

Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углубленный курс, 4 часа в неделю)


Урок 31 - 35
Арифметические и логические (битовые) операции. Маски. Арифметические и логические (битовые) операции. Маски
§26. Особенности представления чисел в компьютере. §27. Хранение в памяти целых чисел. § 28. Операции с целыми числами. §29. Хранение в памяти вещественных чисел



Содержание урока

§26. Особенности представления чисел в компьютере
§27. Хранение в памяти целых чисел
§28. Операции с целыми числами

Сложение и вычитание

Умножение и деление

Сравнение

Поразрядные логические операции

Сдвиги

Вопросы и задания

Задачи

§29. Хранение в памяти вещественных чисел

§28. Операции с целыми числами


Задачи


1. Переведите в 8-разрядный двоичный код десятичные числа 31 и 19 и сложите их. Для проверки переведите полученную сумму в десятичную систему счисления.

2. Повторите вычисления предыдущей задачи, заменив первое слагаемое на -31. Подумайте, что изменится, если код сделать 16-разрядным?

3. Выберите произвольные значения двух целых чисел А и В и запишите их в виде 8-разрядных двоичных кодов. Проверьте путем непосредственных вычислений справедливость тождества А — В = А + (-В).

4. Сложение ведётся в 8-разрядной арифметике со знаком. Какое максимальное число можно прибавить к двоичной константе 1000002, чтобы не возникло переполнения? Как изменится результат, если число будет беззнаковым?

5. Переведите в двоичный код десятичные числа 12 и 7 и перемножьте их. Для проверки переведите результат в десятичную систему счисления.

6. Повторите вычисления предыдущей задачи, заменив первый сомножитель на -12. Считайте, что числа представлены в 8-разрядном коде.

7. Братья Петя и Коля часто спорят по поводу решения задач по информатике. Главная причина состоит в том, что Петя всегда решает задачу, как показал учитель, а Коля вечно придумывает что-то своё, причём не всегда удачно. Сегодня, например, они осваивали двоичную арифметику, умножая 10002 на 110112. Петя добросовестно умножал столбиком, а Коля взял второй сомножитель и, приписав к нему три нуля, получил такой же ответ. После объяснений Петя был вынужден признать правоту брата. Как объяснил свое решение Коля?

8. Какое из двух беззнаковых чисел больше: 0111 0111 или 1000 1000? Изменится ли ваш ответ, если вам скажут, что исходные коды — это 8-разрядные числа со знаком? Переведите оба значения для случаев чисел со знаком и без него в десятичную систему счисления.

9. Код строчной латинской буквы 'а' равен 6116, а заглавной 'А' — 4116. Используя логическую операцию «И», преобразуйте код строчной буквы в код заглавной. Проверьте, работает ли предложенный вами метод для других букв.

10. Используя логическую операцию «ИЛИ», преобразуйте код заглавной буквы 'А' в код строчной 'а'. Проверьте, работает ли предложенный вами метод для других букв.

11. Петя и Коля решают домашнюю задачу: известны коды двух введённых цифр C1 и С2. Найти сумму этих цифр. Петя, как обычно, глядя на цешение задач в классе, пишет:

1) N1 = C1 and 0F16;
2) N2 = С2 and 0F16;
3) S = N1 + N2.

Коля предлагает более короткое решение:

1) S = С1 + С2;
2) S = S and 0F16.

Петя, ссылаясь на образцы задач в учебнике, критикует такой подход. Но Коля показывает на двух примерах ('2' и '3'; '5' и '7'), что его алгоритм даёт правильные результаты. Что скажет учитель по поводу Колиного решения?

12. Выполните битовую операцию X and 3 для следующих десятичных значений X: 4, 5, 8, 15, 16. Для каких из них получился нулевой ответ? Что общего у этих чисел?

13. Разработайте аналогичные способы определения делимости на 2, 8 и 16.

*14. Попробуйте разработать алгоритм, который позволяет поменять местами значения двух ячеек памяти, используя только операцию «исключающее ИЛИ».

15. Цвет точки в формате RGB хранится как 4-байтовое целое число, которое в шестнадцатеричном виде выглядит так: 00  RR  GG  ВВ (т. е. старший байт не используется, а в каждом из последующих байтов хранится одна из трёх цветовых компонент 1). Напишите последовательность операций, позволяющих выделить из 32-битного числа каждую из трёх цветовых компонент. Какая из них потребует большего числа операций?


1 Несмотря на то что старший байт кажется лишним, этот способ хранения не лишён смысла. Дело в том, что процессор не приспособлен к обработке 3-байтовых данных, тогда как с 4-байтовыми работает очень быстро. Описанный формат, в частности, применяется при хранении таблиц цветов в графическом формате ВМР. В других форматах (например, в PNG) старший байт используется для хранения степени прозрачности пикселя (альфа-канала).



16. Петя и Коля решают задачу: цвет точки в формате RGB хранится как 4-байтовое целое число N, которое в шестнадцатеричном виде выглядит так: 00  RR  GG  ВВ. Написать последовательность операций, позволяющих выделить из 32-битного числа красную компоненту. Петино решение:

1) N = N and FF000016;
2) логический сдвиг N вправо на 16 разрядов.

Колино решение содержит только вторую из этих операций. Чьё решение правильное?

17. Используя только сдвиги, сбросьте 4 старших разряда 8-битного значения. Как с помощью сдвигов сбросить 4 младших разряда?

18. Каков результат логического сдвига влево на 4 разряда шестнадцатеричного целого числа FEDC16? Сравните его с результатом циклического сдвига.

19. Заданы два шестнадцатеричных целых числа: 123416 и FEDC16. К каждому из них применяются логический, циклический и арифметический сдвиги вправо на 4 разряда (каждый раз сдвигается первоначальное значение, а не результат предыдущего сдвига!) Напишите и объясните результаты для каждой операции.

20. Запишите число —18 в 8-разрядном двоичном коде. Что получится, если применить к нему логический сдвиг вправо? Арифметический сдвиг вправо? Сравните полученные результаты и объясните их.

21. Переведите число -1 в дополнительный двоичный код и дважды примените к нему арифметический сдвиг вправо. Какой будет результат?

22. Выполните приведённый в тексте параграфа алгоритм умножения на 10 для Z = 11002. Для проверки переведите результат в десятичную систему счисления.

Следующая страница §29. Хранение в памяти вещественных чисел



Cкачать материалы урока







Наверх