Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по программированию и алгоритмизаци...doc
Скачиваний:
31
Добавлен:
05.09.2019
Размер:
2.24 Mб
Скачать

Мультипликативные операции

* Операция умножения

Операндами могут быть выражения арифметического типа. Значением выражения является произведение значений. Тип результата выражения любой бинарной операции определяется в зависимости от принятых в C++ процедур преобразования типов данных.

/ Операция деления

Операндами могут быть выражения арифметического типа. Значением выражения является частное от деления значения первого операнда на второй операнд. Тип результата выражения любой бинарной операции определяется в зависимости от принятых в C++ процедур преобразования типов данных.

% Операция получения остатка от деления целочисленных операндов (деление по модулю).

Операндами могут быть выражения арифметического типа. В процессе выполнения операции операнды приводятся к целому типу. При неотрицательных операндах остаток положительный. В противном случае знак остатка определяется в зависимости от реализации. Известно, что для Borland C++

15%6 = 3, (-15)%6 = -3, 15%(-6) = 3, (-15)%(-6) = -3

При ненулевом делителе для целочисленных операндов выполняется соотношение

(a/b) * b+a % b =a

Операции сдвига

Эти операции определены только для целочисленных операндов.

<< Операция левого сдвига.

Операндами могут быть выражения интегрального типа. Значением выражения является битовое представление левого операнда, сдвинутое влево на количество разрядов, равное значению правого операнда. При левом сдвиге на i разрядов первые i разрядов левого операнда теряются, последние i разрядов левого операнда заполняются нулями.

>> Операция правого сдвига.

Операндами могут быть выражения интегрального типа. Значением выражения является битовое представление левого операнда, сдвинутое вправо на количество разрядов, равное значению правого целочисленного операнда. При правом сдвиге на i разрядов первые i разрядов левого операнда заполняются нулями, если левый операнд имеет беззнаковый тип или имеет неотрицательное значение, в противном случае значение определяется реализацией. Последние i разрядов левого операнда теряются.

Поразрядные операции

Поразрядные операции определены только для целочисленных операндов.

& Поразрядная конъюнкция битовых представлений значений

целочисленных операндов

Операндами могут быть выражения интегрального типа. Значение выражения вычисляется путём побитовых преобразований и зависит от значений соответствующих битов левого и правого операнда. Следующая таблица однозначно определяет операцию поразрядной конъюнкции.

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

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

Результат операции &

1

1

1

1

0

0

0

1

0

0

0

0

| Поразрядная дизъюнкция битовых представлений значений

целочисленных операндов

Операндами могут быть выражения интегрального типа. Значение выражения вычисляется путём побитовых преобразований и зависит от значений соответствующих битов левого и правого операнда. Следующая таблица определяет операцию поразрядной дизъюнкции.

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

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

Результат операции |

1

1

1

1

0

1

0

1

1

0

0

0

^ Поразрядная исключающая дизъюнкция битовых представлений значений целочисленных операндов

Операндами могут быть выражения интегрального типа. Значение выражения вычисляется путём побитовых преобразований и зависит от значений соответствующих битов левого и правого операнда. Следующая таблица определяет операцию поразрядной исключающей дизъюнкции.

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

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

Результат операции ^

1

1

0

1

0

1

0

1

1

0

0

0