730 ___ __ Часть II. Программирование на C++

Тому есть хорошие готовые примеры — один из них находится в оперативной памяти по абсолютному адресу 0х0417. Этот байт содержит биты состояния клавиатуры. Каждый бит в нем хранит текущее состояние специальных клавиш типа <Num Lock> и <Caps Lock>. Еще одним примером могут служить упакованные дата и время изменения файла в таблице элементов каталога.

В некоторых задачах может возникнуть необходимость доступа к отдельным битам. C++, являясь надмножеством языка С, унаследовал от предшественника способность к тесной работе с аппаратным обеспечением — возможности обращения к оперативной памяти, портам ввода-вывода и другие подобные низкоуровневые операции. Плюс к этому переменные в C++ можно определять как битовые поля.

Минимальный размер любой переменной встроенного типа 8 бит, то есть число бит в символьном типе. Битовое поле позволяет задать произвольное количество бит, присвоить им значение и записать в переменной базового

типа:

«

int bits:4; // 4-битное число int bits:7; // 7-битное число

4-битное число, согласно ранее приведенной формуле, может иметь значение от 0 до 15. Запись в виде битовых полей удобна для определения переменных, хранящихся в виде битового массива, таких как, например, дата и время в формате DOS.

Выбор строительных блоков

Базовые типы данных — это ваши основные строительные блоки. Ваше дело — определить их назначение и контекст, в котором они будут использоваться. Зачастую представление данных в продуманном формате упрощает доступ к ним, избавляя от написания дополнительного кода.

Философия C++ предполагает, что многие сущности могут быть представлены классами. Как вы не раз увидите в этой книге, не каждая сущность является классом и помимо классов есть структуры другого рода. Прежде чем начинать писать программу, определитесь с моделью данных.

Обзор операций

Операции, такие как +, -, * (умножение) и / знакомы вам по математическим формулам еще со школьных времен. Посредством операций выражаются отношения между данными. Существует множество операций, которые вам знакомы, еще больше могут быть неизвестны, а есть немало таких, которые вы можете вообще не считать операциями. Предваряя этот раздел, настоятельно рекомендуем: если вы не уверены в правильности применения операций, уточняйте их щедрой расстановкой скобок.