Операции. Арифметические операции
Содержание
- 1. Какие арифметические операции используются в языке C/C++?
- 2. Для каких типов данных можно применять арифметические операции?
- 3. Как осуществляется приведение типов в операциях +, —, *?
- 4. Какой приоритет и ассоциативность арифметических операций?
- 5. Какое отличие между бинарными и унарными операциями сложения (+) и вычитания (—)?
- 6. Какие особенности использования операции % (остаток от деления)?
- 7. Какие особенности использования операции / (деление)?
- Связанные темы
Поиск на других ресурсах:
1. Какие арифметические операции используются в языке C/C++?
В языке C/C++ поддерживаются следующие арифметические операции:
+ – сложение; - – вычитание; * – умножение; / – деление; % – остаток от деления.
Все эти операции являются бинарными. Это означает, что для получения результата, нужно 2 операнда. Общий вид арифметической операции:
операнд1 операция операнд2
где
операция – одна из операций +, —, *, %, /.
2. Для каких типов данных можно применять арифметические операции?
Арифметические операции можно применять для:
- целочисленных типов: short int, unsigned short int, int, unsigned int, long, unsigned long;
- типов с плавающей запятой (вещественных типов): float, double, long double;
- типов (классов), которые содержат «перегруженные» арифметические операции.
В арифметических операциях один из операндов может иметь целочисленный тип, а второй быть типом с плавающей запятой. В этом случае результат имеет тип с плавающей запятой.
3. Как осуществляется приведение типов в операциях +, —, *?
В выражениях, где используются операции +, —, *, действуют следующие правила приведения типа результата:
- если оба операнда имеют целый тип, то результат также будет целого типа;
- если хотя бы один из операндов имеет вещественный (с плавающей запятой) тип а другой целый тип, то результат также будет вещественного типа;
- если один из операндов имеет тип float, а другой тип double, то результат будет типа double. Это связано с тем, что тип double требует больше памяти чем тип float. В этом случае происходит расширение типа float к типу double.
4. Какой приоритет и ассоциативность арифметических операций?
Арифметические операции имеют приоритет и ассоциативность, как изображено в следующей таблице.
Знаки операций |
Наименование |
Ассоциативность |
* / % |
Бинарные, мультипликативные |
Слева направо |
+ — |
Бинарные, аддитивные |
Слева направо |
5. Какое отличие между бинарными и унарными операциями сложения (+) и вычитания (—)?
Операции сложения (+) и вычитания (—) могут быть как бинарными, так и унарными.
Бинарные операции + и — используются в выражениях при проведении вычислений.
Унарные операции + и — используются для обозначения знака числа (положительное число или отрицательное число).
Пример.
int a, b; a = -8; // унарная операция '-', обозначает знак числа b = +9; // унарная операция '+', b = 9 a = b-5; // бинарная операция '-', используется для вычисления выражения
6. Какие особенности использования операции % (остаток от деления)?
Операция % используется над целыми операндами. Операция % позволяет получить остаток от деления целых операндов.
Пример.
// Операция % - взятие остатка от деления int a, b; int c; a = 3; b = 5; c = a % b; // c = 3 a = 8; b = 4; c = a % b; // c = 0 c = 12 % 35; // c = 12 c = 35 % 12; // c = 11 c = -5 % -3; // c = -2
7. Какие особенности использования операции / (деление)?
Операция деления имеет свои особенности, которые состоят в следующем:
- если два операнда имеют целочисленный тип, то результат возвращается целого типа. В этом случае происходит деление нацело. Остаток от деления урезается;
- если один из операндов имеет тип с плавающей запятой, тогда результат имеет также тип с плавающей запятой.
Пример.
// Операция деления '/' int a, b; int c; float x; a = 8; b = 3; c = a / b; // c = 2 x = a / b; // x = 2.0 x = a / (float)b; // x = 2.666667 x = 17.0 / 3; // x = 5.666667 x = 17 / 3; // x = 5.0
Связанные темы
- Операции отношений
- Логические операции. Поразрядные логические операции. Операции сдвига
- Операторы инкремента (++) и декремента (—). Составные операторы присваивания (+=, -= …)
- Таблица приоритетности операций