- •Основные элементы языка Си Константы
- •Константы целого типа
- •Задание.
- •Беззнаковые и длинные целые константы
- •Константы с плавающей точкой
- •Escape-последовательности
- •Символьные константы
- •Строковые константы
- •Задание.
- •Вопросы.
- •Основные операции языка Си Общие положения
- •Арифметические операции
- •Унарные операции
- •Унарный минус
- •Операция унарный плюс.
- •Задание.
- •Операции инкремента и декремента
- •Задание.
- •Операции отношения и логические операции
- •Задание.
- •Операции присваивания
- •Примеры.
- •Задание.
- •Побитовые операции
- •Задание.
- •Логические побитовые операции
- •Задание.
- •Маскирование
- •Пример.
- •Задание.
- •Пример.
- •Задание.
- •Пример.
- •Пример.
- •Задание.
- •Пример.
- •Примеры.
- •Задание
- •Oперации присваивания и побитовые операции
- •Примеры.
- •Условная операция
- •Примеры.
- •Пример.
- •Задание.
- •Побочные эффекты. Приоритеты и порядок выполнения операций
- •Пример.
- •Пример.
Основные элементы языка Си Константы
В Си используется четыре основных типа констант:
целые ( integer), с плавающей точкой ( float),
символьные ( character), строковые ( string).
Кроме того ANSI-стандарт языка включает специальный тип констант — перечислимый ( enumerated).
Первые два типа констант представляют собой ни что иное, как числа, поэтому о них вместе часто говорят как о числовых константах. Для числовых констант справедливы следующие правила:
в числовую константу нельзя включить знак пробела или запятую;
перед числовой константой может стоять знак минус (фактически этот минус является символом операции перемены знака у числовой константы, но о нем можно мыслить как о части константы);
значение числовой константы не должно выходить за определенные для каждого типа констант границы (снизу и сверху), причем для разных реализаций Си эти границы могут различаться.
Константы целого типа
Константы целого типа - это целочисленные величины. Они могут быть записаны в одной из трех систем счисления: десятичной, восьмеричной и шестнадцатиричной.
Десятичная константа состоит из произвольной комбинации десятичных цифр, однако первая цифра должна быть отлична от нуля.
Восьмеричная константа состоит из произвольного набора восьмеричных цифр (0 - 7), причем первая цифра должна быть нулем. Нуль является признаком того, что константа восьмеричная.
Для записи шестнадцатеричных констант используются цифры от 0 до 9 и буквы A, B, C, D, E, F (верхнего или нижнего регистров). Для указания того, что константа является шестнадцатиричной, ее следует начинать с нуля и латинской буквы X (верхнего или нижнего регистра): 0X или 0x .
Задание.
1. Какие ошибки допущены при записи следующих десятичных целых констант?
12,345
36.0
123-45
0987
2. Какие ошибки допущены при записи следующих восьмеричных констант?
743
05280
0777.777
3. Какие ошибки допущены при записи следующих шестнадцатеричных констант?
0Bf38
0X12.34
0xDEFG
0X.4bff
4. Записать значения каждой из следующих целых констант в двух других
допустимых системах счисления:
0xa1
123
0123
Беззнаковые и длинные целые константы
Так как целые константы могут быть положительными и отрицательными, то при их записи в память выделяется знаковый бит. В результатеэтого максимально допустимый модуль значения константы уменьшается (за счет уменьшения на бит разрядной сетки) приблизительно в два раза.
Беззнаковые константы — это заведомо положительные константы, при записи которых в память не нужен знаковый бит. Если, например, константа записывается в байт, то для знаковой формы допустимый диапазон значений будет от - 128 до +127, а в беззнаковой форме — от 0 до 255 (поясните, почему так). Для того, чтобы указать, что константа является беззнаковой, нужно в ее конец добавить символ U или u ( от unsigned — беззнаковый).
Есть другой способ увеличить диапазон допустимых значений константы за счет увеличения выделяемой для хранения константы памяти. Для целых констант большинство современных компиляторов отводят машинное слово (два байта), что соответствует значениям от —32768 до +32767 .
Константы, для которых выделяется увеличенный объем памяти (обычно 4 байта — двойное слово), называются длинными (long). Чаще всего компиляторы сами подстраиваются под размер записанной константы и выделяют по необходимости 2 или 4 байта.
Однако в некоторых случаях (например, для того чтобы гарантировать переносимость программы или избежать лишних преобразований при согласовании типов операндов в выражении) можно явно указать, что константа должна рассматриваться как длинная, даже если ее величина невелика.
Для этого нужно в конце константы добавить латинскую букву L или l. Длиные константы могут принимать значения от -2 147 483 648 до 2 147 483 647.
Можно использовать константы, которые являются одновременно и беззнаковыми и длинными. Для этого в конец константы добавляются символы UL (в любом регистре).
Примеры беззнаковых и длинных констант:
0L
50000U
123456789L
012345L
07777U
0XFFFFFUL
0X50000U