21. Операции сдвига.
Поразрядные операторы сдвига >> и << сдвигают все биты переменной вправо или влево. Общая форма оператора сдвига вправо:
Переменная >> кол-во разрядов
Общая форма оператора сдвига влево:
Переменная << количество разрядов
Во время сдвига битов в один конец числа, другой конец заполняется нулями. Но если число типа signed int отрицательно, то при сдвиге вправо левый конец заполняется единицами, так что знак числа сохраняется. Необходимо отметить различие между сдвигом и циклическим сдвигом. При циклическом сдвиге биты, сдвигаемые за пределы операнда, появляются на другом конце операнда. А при сдвиге вышедшие за границу биты теряются.
Поразрядные операции сдвига очень полезны при декодировании выходов внешних устройств, например, таких, как цифро-аналоговые преобразователи, а также при считывании информации о статусе устройств. Сдвиг на один бит вправо делит число на 2, а на один бит влево – умножает на 2.
- 1.История создания языка с.
- 2. Основные характеристики алгоритмического языка Си.
- 3. Область применения и системы программирования языка Си.
- 4. Исходные и объектные модули, процессы компиляции и связывания.
- 5. Алфавит языка Си. Лексемы
- 6. Ключевые слова языка Си.
- 7. Знаки пунктуации, специальные символы и знаки операций в языке Си.
- 8. Идентификаторы в языке Си.
- 9. Виды констант в языке Си.
- 10. Константы целые и вещественные.
- 11. Символьные константы.
- 12. Строковые константы.
- 13. Типы данных: целый, вещественный, символьный.
- 14. Представление данных в оперативной памяти. Размеры данных.
- 15. Правила определения переменных в программе. Инициализация переменных.
- 16. Определение именованных констант. Спецификация типов.
- 17. Выражения: математические, логические, текстовые.
- 18. Унарные операции.
- 19. Классификация бинарных операций.
- 20. Арифметические и поразрядные операции.
- 21. Операции сдвига.
- 22. Операции отношения, логические операции.
- 23. Операции присваивания.
- 24. Условная трехместная операция.
- 25. Преобразование типов.
- 26. Приоритет операций и порядок вычисления выражений.
- 27. Функция форматированного вывода printf.
- 28. Функция форматированного ввода информации scanf.
- 29. Понятие оператора. Оператор простой и составной, блок.
- 30. Виды управляющих конструкций программы.
- 31. Операторы ветвления, условный оператор.
- 32. Метки и переходы. Пустой оператор. Оператор выбора (переключатель).
- 33. Структурные схемы циклических процессов.
- 34. Операторы цикла: цикл с заданным числом повторений.
- 35. Операторы цикла: цикл с предусловием.
- 36. Операторы цикла. Цикл с постусловием.
- 37. Операторы прерывания и продолжения цикла. Вложенные циклы.
- 38. Одномерные и многомерные массивы, их инициализация.
- 39. Указатели. Связь между указателями и массивами.
- 40. Операции над указателями.
- 41. Массивы переменных размеров. Функции использования динамической памяти.
- 42. Определение функций. Программирование с использованием функций. Возвращение значения: оператор return.
- 43. Аргументы функции: формальные и фактические. Передача аргументов, стек.
- 44. Указатели на функции. Массивы указателей на функции. Указатель на функцию в качестве аргумента другой функции.
- 45. Рекурсивные программы.
- 46. Функции для работы со строками: сравнение, копирование.
- 47. Функции для работы со строками: поиск в строке.
- 48. Функции для работы со строками: преобразование форматов.
- 49. Декларация структур.
- 50. Инициализация и доступ к элементам структуры.
- 51. Вложенные структуры и массивы структур.
- 52. Указатели на структуры.
- 53. Использование структур в качестве аргументов функций.
- 54. Объединения и битовые поля.
- 55. Локальные и глобальные переменные.
- 56. Классы памяти.
- 57. Автоматические и регистровые переменные.
- 58. Внешние и статические переменные, особенности их реализации.
- 59. Символические константы: #define. Включение файла: #include.
- 60. Директивы препроцессора: #if, #ifdef, #ifndef, #else, #endif.
- 61. Файлы. Двоичное и текстовое представление файлов.
- 62. Стандартные файлы (потоки).
- 63. Понятие потока.
- 64. Открытие и закрытие файлов.
- 65. Операции файлового ввода-вывода.
- 66. Позиционирование. Указатель чтения –записи в файле.
- 67. Организация низкоуровневого ввода-вывода.
- 68. Функции обслуживания файлов низкоуровневого ввода-вывода.