Глава 6. Базовые типы данных и операции__________________________127
цесс строительства не стал излишне сложен, ваши новые типы нужно "научить правилам поведения" — и далее работать с ними так же, как со встроенными.
Но прежде чем вникать в процесс конструирования производных типов данных, давайте рассмотрим каждый из базовых типов и их различные формы.
Базовые типы
Базовыми или встроенными являются типы данных char, int, long, float и double. Максимальные и минимальные значения для целочисленных типов — char, int и long - определены в заголовочном файле \Bc5\include\ limits.h. Максимальные и минимальные значения для типов с плавающей точкой, известных также как вещественные, определены в \Bc5\include\ float.h.
Совет
¦Вам незачем запоминать упомянутые границы. Эти максимумы и минимумы довольно просто вспомнить, исходя из занимаемого каждым типом данных объема памяти.
Тип char - это байтовый тип. Один байт состоит из восьми бит (термин бит (bit) образован из слов binary digit — двоичная цифра). Использование двоичных чисел обусловлено тем, что память вычислительных машин строится на основе переключателей, имеющих два устойчивых состояния, что естественным образом приводит к двоичной системе счисления. Значения этого типа основываются на степенях двойки, следовательно максимальное значение числа можно получить из выражения
2"-1
где n — это количество бит, используемых для хранения этого числа. Таким образом, если тип char занимает 8 бит, то максимальное значение числа такого типа равно 255, а минимальное, естественно, 0.
Вышеприведенное выражение справедливо для беззнаковых (положительных) чисел. Знаковые числа — которые могут быть и положительными, и отрицательными — принимают значения примерно от плюс до минус половины максимального, или ±(2п—2) (по всей видимости, имелось в виду ±(2"-l—l); а если быть совершенно точным, то [-2""1 — (2n-l—l)], — прим. перев.), поскольку один бит используется для хранения знака. Количество бит дает ключ к разгадке того, откуда берутся максимальные и минимальные значения целочисленных типов. Тип int определяет 16-битовые целые;
применив к ним все те же вычисления, получим для беззнаковых целых максимальное значение, равное 65 535'. Беззнаковое целое типа long позволяет хранить числа от 0 приблизительно до 4 миллиардов.