Примеры
Предположим, что имеются следующие операторы:
int х = 2;
int у = 3;
Тогда х & у дает в результате значение 2, потому что только один бит “включен” как в х, так иву. Кроме того, х << у дает в результате значение 12, поскольку это значение получается, когда битовый шаблон 3 сдвигается на 2 бита влево.
838 Приложение Б
прочие операции
Операция sizeof возвращает размер операнда, находящегося справа, который измерен в единицах, представляющих собой размер значения char. Обычно размер значения char составляет 1 байт. Операнд может быть спецификатором типа в круглых скобках, как в случае sizeof (float), или же именем определенной переменной, массива и тому подобного, как в случае sizeof foo. Типом выражения sizeof является sizet.
Операция _Alignof (СИ) выдает требование к выравниванию для типа, указанного в операнде. В некоторых системах значения определенного типа должны сохраняться по адресам, кратным какой-то величине, такой как 4. Это целое число является требованием к выравниванию.
Операция (тип) -- это операция приведения, которая преобразует следующее за ней значение в тип, указанный с помощью ключевого слова в круглых скобках. Например, (float) 9 преобразует целое число 9 в число с плавающей запятой 9. 0.
Операция , — это операция запятой, которая связывает два выражения в одно и гарантирует, что левое выражение будет оценено первым. Значением всего результирующего выражения является значение правого выражения. Операция запятой обычно используется для включения большего количества информации в управляющее выражение цикла for.
Пример
for (step = 2, fargo = 0; fargo < 1000; step *= 2) fargo + = step;
Раздел III. Базовые типы и классы хранения
Сводка: базовые типы данных
Базовые типы данных С подразделяются на две категории: целые числа и числа с плавающей запятой. Различные вариации характеризуются разными диапазонами значений и точностью.
Ключевые слова
Базовые типы данных устанавливаются с применением следующих восьми ключевых слов: int, long, short, unsigned, char, float, double и signed (ANSI C).
Целые числа со знаком
Целые числа со знаком могут иметь положительные и отрицательные значения.
• int — базовый целочисленный тип для данной системы.
• long или long int — может содержать целое число, как минимум, равное самому большому значению int, и возможно больше; long занимает не менее 32 битов.
• Самое большое значение short или short int не больше самого большого int, но может быть меньше, short занимает минимум 16 битов. Обычно long больше, чем short, а int — такой же, как один из них. Например, компиляторы С для DOS на IBM PC поддерживают 16-битовые int и short и 32-битовый long.
• Тип long long, предусмотренный стандартом С99, имеет размер не меньше, чем у long, и занимает минимум 64 бита.
Справочные материалы 839
Целые числа без знака
Целые числа без знака могут иметь только нулевое или положительные значения, что расширяет диапазон допустимых положительных чисел. Используйте ключевое слово unsigned перед именем желаемого типа: unsigned int, unsigned long, unsigned short или unsigned long long. Указание только одного ключевого слова unsigned означает то же самое, что и unsigned int.
Символы
Символы — это типографские знаки, такие как А, & и +. По определению для переменной типа char используется один байт памяти. В прошлом наиболее типичным был размер char, равный 8 битам. Однако возможность языка С по обработке расширенных наборов символов может привести к применению 16-битовых и даже 32-битовых символов.
Ключевым словом для обозначения этого типа является char. Некоторые реализации используют char со знаком, другие — char без знака. ANSI С позволяет применять ключевые слова signed и unsigned для указания требуемой формы char. Формально char, unsigned char и signed char — три разных типа, причем тип char имеет такое же представление, как один из двух других.
Булевский тип (С99)
Булевским типом в С99 является _Bool. Это целочисленный тин без знака, который может принимать одно из двух значений: 0 для обозначения лжи и 1 — для истины. Включение заголовочного файла stdbool.h позволяет использовать bool вместо _Bool, true — вместо 1 и false — вместо 0, что обеспечивает совместимость кода с C++.
Вещественные и комплексные типы с плавающей запятой
Стандарт С99 выделяет две области типов с плавающей запятой: вещественные и комплексные. Вместе они образуют типы с плавающей запятой.
Вещественные числа с плавающей запятой могут иметь положительные и отрицательные значения. В языке С распознаются три вещественных типа с плавающей занятой.
• float — базовый тип с плавающей запятой. Может представлять как минимум шесть значащих цифр. Обычно занимает 32 бита.
Читать дальше