| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
- 81 -
Округление всегда выполняется к нулю.
Операции типа сложения
Существует две операции типа сложения: + и -. Синтаксис
этих операций следующий:
выражение-типа-сложения:
выражение-типа-умножения
выражение-типа-сложения + выражение-типа-умножения
выражение-типа-сложения - выражение-типа-умножения
Операция сложения +
Допустимыми являются следующие типы операндов выражения
операнд1 + операнд2:
1. Операнд1 и операнд2 оба арифметического типа.
2. Операнд1 интегрального типа, а операнд2 является
указателем на объект.
3. Операнд2 интегрального типа, а операнд1 является
указателем на объект.
В первом случае выполняются стандартные арифметические
преобразования операндов, а результатом является их арифме-
тическая сумма. В случаях 2 и 3 применяются правила арифме-
тических действий с указателями. (Арифметические действия с
указателями рассматриваются на стр.57 оригинала).
Операция вычитания -
Допустимыми являются следующие типы операндов выражения
операнд1 - операнд2:
1. Операнд1 и операнд2 оба арифметического типа.
2. Оба операнда являются указателями на совместимые ти-
пы объектов. (Примечание: неквалифицированный тип type расс-
матривается как совместимый с квалифицированными типами
const type, volatile type и const volatile type.)
3. Операнд2 интегрального типа, а операнд1 является
указателем на объект.
В первом случае выполняются стандартные арифметические
преобразования операндов, а результатом является их арифме-
тическая разность. В случаях 2 и 3 применяются правила ариф-
метических действий с указателями.
Операции поразрядного сдвига
Существует две операции поразрядного сдвига: << и >>.
Синтаксис этих операций следующий:
выражение-типа-сдвига:
выражение-типа-сложения
выражение-типа-сдвига << выражение типа сдвига
выражение-типа-сдвига >> выражение типа сдвига
Операция поразрядного сдвига влево <<
В выражении E1 << E2 операнды Е1 и Е2 должны иметь тип
- 82 -
int. С Е1 и Е2 выполняются обычные целочисленные действия, а
тип результата определяется операндом Е1. Если Е2 отрицате-
лен, либо по числу разрядов больше или равен Е1, то операция
неопределена.
Результатом операции E1 << E2 является значение E1,
сдвинутое влево на Е2 разрядов и при необходимости заполнен-
ное справа нулями. Сдвиг влево unsigned long E1 эквивалентно
умножению Е1 на 2 в степени Е2 и редуцированию по модулю
ULONG_MAX+1; сдвиг влево unsigned int эквивалентно умножению
на 2 в степени Е2 и редуцированию по модулю UINT_MAX+1. Если
Е1 это signed int, то результат следует интерпретировать с
осторожностью, поскольку знаковый бит изменился.
Константы ULONG_MAX и UINT_MAX определяются в .h-файле.
Операция поразрядного сдвига вправо >>
В выражении E1 >> E2 операнды Е1 и Е2 должны иметь тип
int. С Е1 и Е2 выполняются обычные целочисленные действия, а
тип результата определяется операндом Е1. Если Е2 отрицате-
лен, либо по числу разрядов больше или равен Е1, то операция
неопределена.
Результатом операции E1 >> E2 является значение E1,
сдвинутое вправо на Е2 разрядов. Если Е1 имеет тип unsigned,
то при необходимости происходит его заполнение нулями слева.
Если же Е1 имеет тип signed, то заполнение слева выполняется
знаком (0 для положительных и 1 для отрицательных значений).
Такое расширение знакового бита гарантирует, что знак у Е1
>> E2 будет таким же, как и у E1. За исключением типов со
знаком, значение E1 >> E2 представляет собой целую часть
частного.
Операции отношения
Существует четыре операции отношения: < > <= и >=. Син-
таксис этих операций следующий:
выражение-отношения:
выражение-типа-сдвига
выражение-отношения < выражение-типа-сдвига
выражение-отношения > выражение-типа-сдвига
выражение-отношения <=выражение-типа-сдвига
выражение-отношения >=выражение-типа-сдвига
Операция меньше чем <
В выражении E1 < E2 операнды должны удовлетворять одно-
му из следующего набора условий:
1. Оба значения Е1 и Е2 - арифметического типа.
2. Оба значения Е1 и Е2 являются указателями квалифици-
рованных или неквалифицированных версий совместимых типов
объектов.
Определение квалифицированных имен дается на стр.108
оригинала.
3. Оба значения Е1 и Е2 являются указателями квалифици-
рованных или неквалифицированных версий совместимых неполных
типов.
В случае 1 выполняются обычные арифметические преобра-
зования. Результат E1 < E2 имеет тип int. Если значение E1
меньше значения E2, то результат равен 1 (истина); в против-
- 83 -
ном случае результат равен 0 (ложь).
В случаях 2 и 3, где Е1 и Е2 являются указателями сов-
местимых типов, результат операции E1
Выражение E1 > E2 дает 1 (истина), если значение Е1
больше значения Е2;в противном случае результат равен 0
(ложь), причем используются те же способы интерпретации
арифметических сравнений и сравнений указателей, что опреде-
лены для операции "больше чем". К операндам применимы те же
правила и ограничения.
Операция меньше или равно <=
Аналогичным образом, выражение E1 <= E2 дает 1 (исти-
на), если значение Е1 меньше или равно значению Е2. В про-
тивномслучаерезультат равен 0 (ложь), причем используются те
же способы интерпретации арифметических сравнений и сравне-
ний указателей, что определены для операции "меньше чем". К
операндам применимы те же правила и ограничения.
Операция больше или равно >=
И наконец, выражение E1 >= E2 дает 1 (истина), если
значение Е1 больше или равно значению Е2. В противном случае
результат равен 0 (ложь), причем используются те же способы
интерпретации арифметических сравнений и сравнений указате-
лей, что определены для операции "меньше чем". К операндам
применимы те же правила и ограничения.
Операции типа равенства
Существует две операции типа равенства: == и !=. Они
проверяют условие равенства операндов арифметического типа и
типа указателей, следуя при этом правилам, аналогичным тем,
что действуют для операцийотношения. Отметим, однако, что ==
и != имеют более низкий приоритет выполнения, чем операции
отношения <, >, <= и >=. Кроме того, операции == и != позво-
ляют выполнять проверку равенства указателей в таких случа-
ях, где операции отношения неприменимы. Синтаксис этих опе-
раций следующий:
выражение-типа-равенства:
|
adfun.ru
|
|
|
|