С++ для начинающих - Учебное пособие

Часть ii  основы языка

Код программы и данные, которыми программа манипулирует, записываются в память компьютера   в   виде   последовательности    битов.   Бит –   это   мельчайший    элемент компьютерной памяти, способная хранить либо 0, либо 1. На физическом уровне это соответствует электрическому напряжению, которое, как известно, либо есть , либо нет. Посмотрев на содержимое памяти компьютера, мы увидим что-нибудь вроде:

00011011011100010110010000111011 ...

Очень трудно придать такой последовательности смысл, но иногда нам приходится манипулировать и подобными неструктурированными данными (обычно нужда в этом возникает при программировании драйверов аппаратных устройств). С++ предоставляет набор операций для работы с битовыми данными. (Мы поговорим об этом в главе 4.)

Как  правило,  на  последовательность  битов  накладывают  какую-либо  структуру, группируя биты в байты и слова. Байт содержит 8 бит, а слово – 4 байта, или 32 бита. Однако определение слова может быть разным в разных операционных системах. Сейчас начинается переход к 64-битным системам, а еще недавно были распространены системы с 16-битными словами. Хотя в подавляющем большинстве систем размер байта одинаков, мы все равно будем называть эти величины машинно-зависимыми.

Так выглядит наша последовательность битов, организованная в байты.

Рис 1.

Адресуемая машинная память

Теперь мы можем говорить, например, о байте с адресом 1040 или о слове с адресом 1024

и утверждать, что байт с адресом 1032 не равен байту с адресом 1040.

Однако мы не знаем, что же представляет собой какой-либо байт, какое-либо машинное слово.  Как  понять  смысл  тех  или  иных  8  бит? Для  того чтобы  однозначно интерпретировать  значение  этого  байта  (или  слова,  или  другого  набора  битов),  мы должны знать тип данных, представляемых данным байтом.

С++  предоставляет   набор  встроенных  типов  данных:  символьный,  целый, вещественный – и набор составных и расширенных типов: строки, массивы, комплексные числа.    Кроме   того,    для   действий    с   этими    данными    имеется   базовый    набор операций: сравнение,   арифметические   и   другие   операции.   Есть   также   операторы переходов, циклов, условные операторы. Эти элементы языка С++ составляют тот набор кирпичиков, из которых можно построить систему любой сложности. Первым шагом в освоении  С++  станет  изучение  перечисленных  базовых  элементов,  чему и  посвящена часть II данной книги.

Глава  3  содержит  обзор  встроенных  и  расширенных  типов,  а  также  механизмов,  с помощью которых можно создавать новые типы. В основном это, конечно, механизм классов,   представленный   в   разделе   2.3.   В   главе   4   рассматриваются   выражения, встроенные операции и их приоритеты, преобразования типов. В главе 5 рассказывается об инструкциях языка. И наконец глава 6 представляет стандартную библиотеку С++ и контейнерные типы – вектор и ассоциативный массив.