32-битовое целое число в программировании: нужные упражнения
1. Выполните упражнения из разделов, если вы этого еще не сделали.
2. Составьте список слов, которые можно получить из записи чисел в шестнадцатеричной системе счисления, читая 0 как o, 1 как l, 2 как to и т.д. Например, Foo1 и Beef. Прежде чем сдать их для оценки, тщательно устраните все вульгаризмы.
3. Проинициализируйте 32-битовое целое число со знаком битовой комбинацией и выведите его на печать: все нули, все единицы, чередующиеся нули и единицы (начиная с крайней левой единицы), чередующиеся нули и единицы (начиная с крайнего левого нуля), 110011001100, 001100110011, чередующиеся байты, состоящие из одних единиц и одних нулей, начиная с байта, состоящего из одних нулей. Повторите это упражнение с 32-битовым целым числом без знака.
4. Добавьте побитовые логические операторы operators в калькулятор из главы 7.
5. Напишите бесконечный цикл. Выполните его.
6. Напишите бесконечный цикл, который трудно распознать как бесконечный. Можно использовать также цикл, который на самом деле не является бесконечным, потому что он закончится после исчерпания ресурса.
7. Выведите шестнадцатеричные значения от 0 до 400; выведите шестнадцатеричные значения от -200 до 200.
8. Выведите числовой код каждого символа на вашей клавиатуре.
9. Не используя ни стандартные заголовки (такие как ), ни документацию, вычислите количество битов в типе int и определите, имеет ли знак тип char в вашей реализации языка С++.
10. Проанализируйте пример битового поля. Напишите пример, в котором инициализируется структура PPN, затем выводится на печать значение каждого ее поля, затем изменяется значение каждого поля (с помощью присваивания) и результат выводится на печать. Повторите это упражнение, сохранив информацию из структуры PPN в 32-битовом целом числе без знака, и примените операторы манипулирования битами для доступа к каждому биту в этом слове.
11. Повторите предыдущее упражнение, сохраняя биты к объекте класса bitset<32>.
12. Напишите понятную программу для примера.
13. Используйте алгоритм TEA для передачи данных между двумя компьютерами. Использовать электронную почту настоятельно не рекомендуется.
14. Реализуйте простой вектор, в котором могут храниться не более N элементов, память для которых выделена из пула. Протестируйте его при #==1000 и целочисленных элементах.
15. Измерьте время, которое будет затрачено на размещение 10 тысяч объектов случайного размера в диапазоне байтов [1000:0), с помощью оператора new; затем измерьте время, которое будет затрачено на удаление этих элементов с помощью оператора delete. Сделайте это дважды: один раз освобождая память в обратном порядке, второй раз — случайным образом. Затем выполните эквивалентное задание для 10 тысяч объектов размером 500 байт, вы деляя и освобождая память в пуле. Потом разместите в диапазоне байтов [1000:0) 10 тысяч объектов случайного размера, выделяя память в стеке и освобождая ее в обратном порядке. Сравните результаты измерений. Выполните каждое измерение не менее трех раз, чтобы убедиться в согласованности результатов.
16. Сформулируйте двадцать правил, регламентирующих стиль программирования (не копируя правила). Примените их к программе, состоящей более чем из 300 строк, которую вы недавно написали. Напишите короткий (на одной-двух страницах) комментарий о применении этих правил. Нашли ли вы ошибки в программе? Стал ли код яснее? Может быть, он стал менее понятным? Теперь модифицируйте набор правил, основываясь на своем опыте.
17. Мы описали класс Array_ref, обеспечивающий более простой и безопасный доступ к элементам массива. В частности, мы заявили, что теперь наследование обрабатывается корректно. Испытайте разные способы получить указатель Rectangle* на элемент массива vector, используя класс Array_ref, не прибегая к приведению типов и другим операциям с непредсказуемым поведением. Это должно оказаться невозможным.
Опубликовал katy
April 26 2015 12:50:36 ·
0 Комментариев ·
2530 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.