Чтение онлайн

на главную - закладки

Жанры

Язык программирования Си для персонального компьютера

Субботин Д. М.

Шрифт:

Таблица 1.3.

Операция Наименование Операция Наименование
! Логическое НЕ ^ Поразрядное исключающее ИЛИ
~ Обратный код && Логическое И
+ Сложение; унарный плюс || Логическое ИЛИ
Вычитание; унарный минус ?: Условная операция
* Умножение;
косвенная адресация
++ Инкремент
/ Деление – - Декремент
% Остаток от деления = Простое присваивание
<< Сдвиг влево += Присваивание со сложением
>> Сдвиг вправо – = Присваивание с вычитанием
< Меньше *= Присваивание с умножением
<= Меньше или равно /= Присваивание с делением
> Больше %= Присваивание с остатком от деления
>= Больше или равно >>= Присваивание со сдвигом вправо
== Равно <<= Присваивание со сдвигом влево
!= Не равно &= Присваивание с поразрядным И
& Поразрядное И; адресация |= Присваивание с поразрядным включающим ИЛИ
| Поразрядное включающее ИЛИ ^= Присваивание с поразрядным исключающим ИЛИ
, Последовательное выполнение (запятая)    

Примечание. Условная операция ?: является не двухсимвольной, а тернарной (трехоперандной) операцией. Она имеет следующий формат: <операнд1> ? <операнд2> : <операнд3>

Константы

Константа — это число, символ или строка символов. Константы используются в программе для задания постоянных величин. В языке Си различают четыре типа констант: целые, с плавающей точкой, символьные константы и символьные строки.

Целые константы

Целая константа — это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целое значение. Десятичная константа имеет следующий формат представления:

<цифры>

<цифры> — последовательность из одной или более десятичных цифр от 0 до 9.

Восьмеричная константа имеет следующий формат представления:

0<в-цифры>

<в-цифры>—это одна или более восьмеричных цифр от 0 до 7. Запись нуля впереди обязательна.

Шестнадцатеричная константа имеет следующий формат представления:

0х<ш-цифры> или 0Х<ш-цифры>

<ш-цифры> одна или более шестнадцатеричных цифр. Шестнадцатеричная цифра может быть цифрой от 0 до 9 или буквой (большой или малой) от А до F. Допускается "смесь" больших и малых букв. Запись нуля впереди и следующего за ним символа х или Х обязательна.

Между цифрами целой константы пробельные символы недопустимы. В таблице 1.4 приведены примеры целых констант. Константы, записанные в одной строке таблицы, используются для представления одного и того же значения.

Таблица 1.4.

Десятичные
константы
Восьмеричные константы Шестнадцатеричные константы
10 012 0ха или 0хА
132 0204 0х84
32179 076663 0x7dB3 или 0x7DB3

Целые константы всегда специфицируют положительные значения. Если требуется отрицательное значение, то необходимо сформировать константное выражение из знака минус и следующей за ним константы. Знак минус рассматривается при этом как арифметическая операция.

Каждая целая константа имеет тип, определяющий ее представление в памяти (описание типов приведено в разделе 3.1 "Базовые типы данных"). Десятичные константы могут иметь тип int (целый тип) или long (длинный целый тип).

Восьмеричные и шестнадцатеричные константы в зависимости от размера могут иметь тип int, unsigned int, long или unsigned long. Если константа может быть представлена типом int, то компилятор языка Си присваивает ей тип int. Если ее значение больше, чем максимальное положительное значение, которое может быть представлено типом int, но может быть представлено тем же числом битов, что и int, ей присваивается тип unsigned int. Наконец, константа, значение которой больше, чем максимальное значение, представляемое типом unsigned int, задается типом long или, если размер этого типа также оказывается недостаточен, типом unsigned long. В таблице 1.5 показаны диапазоны значений констант различных типов для компьютера, на котором тип int имеет длину 16 битов и тип long имеет длину 32 бита.

Таблица1.5.

Десятичные константы Восьмеричные константы Шестнадцатеричные константы Тип
0—32767 0—077777 0х0—0x7FFF int
  0100000—0177777 0х8000—0xFFFF unsigned int
32767—2147483647 02000001—017777777777 0х10000—0x7FFFFFFF long
  020000000000—030000000000 0х80000000—0xFFFFFFFF unsigned long

Из рассмотренных правил следует, что при преобразовании восьмеричных и шестнадцатеричных констант к более длинным типам не производится расширения знака (поскольку старший, знаковый бит всегда равен нулю).

Программист может явно определить для любой целой константы тип long, записав букву "l" или "L" в конец константы. Это позволяет расширить нижнюю границу диапазона значений констант любого типа до нуля. Например, константа со значением 10 будет иметь тип long только в том случае, если она будет записана с суффиксом L, т. е. 10L. В таблице 1.6 приведены примеры длинных целых констант.

Таблица 1.6.

Десятичные константы Восьмеричные константы Шестнадцатеричные константы
12L 012L 0xaL или 0xAL
0l 0115l 0х4fl или 0x4Fl

В СП ТС реализован также суффикс U (или u), означающий, что константа имеет тип unsigned. Можно использовать одновременно оба суффикса — L и U — для одной и той же константы. Кроме того, в СП ТС константе присваивается тип unsigned long, если ее значение превышает 65535, независимо от наличия или отсутствия суффикса U (в СП MSC в этом случае константе был бы присвоен тип long).

Поделиться:
Популярные книги

Неудержимый. Книга XIX

Боярский Андрей
19. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIX

Последний попаданец

Зубов Константин
1. Последний попаданец
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Последний попаданец

Шериф

Астахов Евгений Евгеньевич
2. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
6.25
рейтинг книги
Шериф

Барон ненавидит правила

Ренгач Евгений
8. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Барон ненавидит правила

Камень

Минин Станислав
1. Камень
Фантастика:
боевая фантастика
6.80
рейтинг книги
Камень

Прометей: каменный век II

Рави Ивар
2. Прометей
Фантастика:
альтернативная история
7.40
рейтинг книги
Прометей: каменный век II

Неудержимый. Книга IX

Боярский Андрей
9. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга IX

Сумеречный Стрелок 2

Карелин Сергей Витальевич
2. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 2

Безумный Макс. Ротмистр Империи

Ланцов Михаил Алексеевич
2. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
4.67
рейтинг книги
Безумный Макс. Ротмистр Империи

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

(Не) моя ДНК

Рымарь Диана
6. Сапфировые истории
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
(Не) моя ДНК

Ученичество. Книга 1

Понарошку Евгений
1. Государственный маг
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ученичество. Книга 1

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник