Операции. Арифметические операции

Операции. Арифметические операции


Содержание



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


Связанные темы