OperaТоры в C++ с примером: что такое, типы и программы
Каковы OperaТорс?
Оператор это символ, используемый для выполнения операций над операндами. Оператор оперирует операндами. Операции могут быть математическими или логическими. Существуют различные типы операторов в C++ для выполнения различных операций.
Рассмотрим следующую операцию:
a = x + y;
В приведенном выше утверждении x и y являются операндами, а + — оператором сложения. Когда C++ компилятор встретит приведенный выше оператор, он добавит x и y и сохранит результат в переменной a.
Виды OperaТоры в C++
В основном 6 различных типов операторов в C++
- Арифметический OperaTORs
- реляционный OperaTORs
- логический OperaTORs
- побитовое OperaTORs
- Назначение OperaTORs
- Другой OperaTORs
Арифметический OperaTORs
Это типы операторов, используемые для выполнения математических/арифметических операций. Они включают:
оператор | Описание |
---|---|
+ оператор сложения | Добавляет к операндам. |
– оператор вычитания | Вычитает 2nd операнд из 1st операнд. |
* оператор умножения | Умножает 2 операнда. |
/ оператор отдела. | Делит числитель на знаменатель. |
% оператор модуля | Возвращает остаток после деления. |
++ оператор приращения | Увеличивает целое значение на 1. |
— оператор декремента. | Уменьшает целое значение на 1. |
Например:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; int c; cout << "a + b is :" << a+b << endl; //11+5 cout << "a - b is :" << a-b << endl; //11-5 cout << "a * b is :" << a*b << endl; //11*5 cout << "a / b is :" << a/b << endl; //11/5 cout << "a % b is :" << a%b << endl; //11%5 cout << "a++ is :" << a++ << endl; //11++ cout << "a-- is :" << a-- << endl; //12-- return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы. { отмечает начало тела функции main().
- Объявление целочисленной переменной a и инициализация ее значением 11.
- Объявление целочисленной переменной b и инициализация ее значением 5.
- Объявление целочисленной переменной c.
- Печать значения операции a+b вместе с другим текстом на консоли.
- Вывод значения операции ab вместе с другим текстом на консоли.
- Печать значения операции a*b вместе с другим текстом на консоли.
- Печать значения операции a/b вместе с другим текстом на консоли.
- Печать значения операции a%b вместе с другим текстом на консоли.
- Вывод значения операции a++ вместе с другим текстом на консоли.
- Печать значения операции a– рядом с другим текстом на консоли.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
реляционный OperaTORs
Эти типы операторов выполняют сравнение операндов. Например, вам может потребоваться узнать, какой операнд больше другого или меньше другого. Они включают:
оператор | Описание |
---|---|
== равно оператору. | Проверяет равенство значений двух операндов. |
!= не равно оператору | Проверяет равенство значений двух операндов. |
>отлично, чем оператор | Проверяет, превышает ли значение левого операнда значение правого операнда. |
< оператор меньше. | Проверяет, меньше ли значение левого операнда, чем значение правого операнда. |
>= оператор больше или равно | Проверяет, больше ли значение левого операнда или равно значению правого операнда. |
<= оператор меньше или равно. | Проверяет, меньше ли значение левого операнда или равно значению правого операнда. |
Например:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; cout << "a=11, b=5" << endl; if (a == b) { cout << "a == b is true" << endl; } else { cout << " a == b is false" << endl; } if (a < b) { cout << "a < b is true" << endl; } else { cout << "a < b is false" << endl; } if (a > b) { cout << "a > b is true" << endl; } else { cout << "a > b is false" << endl; } return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы. { отмечает начало тела функции main().
- Объявление целочисленной переменной a и инициализация ее значением 11.
- Объявление целочисленной переменной b и инициализация ее значением 5.
- Вывод на консоль текста с указанием значений переменных a и b.
- Выполнение арифметической операции a==b в операторе принятия решения if, чтобы узнать, истинно оно или ложно. { отмечает начало тела оператора if.
- Текст для печати на консоли, если операция a==b истинна. Endl — это a C++ ключевое слово для конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора if.
- Другая часть приведенного выше оператора if. В нем указывается, что делать, если операция a==b ложна.
- Текст для печати на консоли, если операция a==b ложна. Endl — это C++ ключевое слово для конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора else.
- Выполнив арифметическую операцию, А.
- Текст для печати на консоли, если операция C++ ключевое слово для конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора if.
- Другая часть приведенного выше оператора if. В нем указано, что делать, если операция
- Текст для печати на консоли, если операция C++ ключевое слово для конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора else.
- Выполнение арифметической операции a>b в операторе принятия решения if, чтобы узнать, истинно оно или ложно. { отмечает начало тела оператора if.
- Текст для печати на консоли, если операция a>b истинна. Endl — это C++ ключевое слово для конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора if.
- Другая часть приведенного выше оператора if. В нем указывается, что делать, если операция a>b ложна.
- Текст для печати на консоли, если операция a>b ложна. Endl — это C++ ключевое слово для конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора else.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
логический OperaTORs
" логические операторы объединить два/более ограничений/условий. Логические операторы также дополняют оценку рассматриваемого исходного состояния. Они включают:
оператор | Описание |
---|---|
&& логический оператор И. | Условие истинно, если оба операнда не равны нулю. |
|| логический оператор ИЛИ. | Условие истинно, если один из операндов не равен нулю. |
! логический оператор НЕ. | Он меняет логическое состояние операнда. Если операнд истинен, то ! оператор делает его ложным. |
Например:
#include <iostream> using namespace std; int main() { int a = 5, b = 2, c = 6, d = 4; if (a == b && c > d) cout << "a equals to b AND c is greater than d\n"; else cout << "AND operation returned false\n"; if (a == b || c > d) cout << "a equals to b OR c is greater than d\n"; else cout << "Neither a is equal to b nor c is greater than d\n"; if (!b) cout << "b is zero\n"; else cout << "b is not zero"; return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы.
- { отмечает начало тела функции main().
- Объявление четырех целочисленных переменных a, b, c и d и присвоение им разных значений.
- Использование оператора && (AND) внутри оператора if. Он объединяет два условия: значение a равно значению b и значение a больше значения b. Первое условие ложно, второе условие истинно. False&&true — это False, следовательно, результат if — false.
- Текст для печати на консоли, если приведенное выше утверждение if истинно. Это не будет выполнено.
- Часть, которая будет выполнена, если приведенное выше утверждение if неверно.
- Текст для печати на консоли, если оператор if ложен. Это будет выполнено.
- Использование || (OR) в операторе if. Он объединяет два условия: значение a равно значению b и значение a больше значения b. Первое условие ложно, второе условие истинно. False||true равно True, следовательно, результат if истинен.
- Текст для печати на консоли, если приведенное выше утверждение if истинно. Это будет выполнено.
- Часть, которая будет выполнена, если приведенное выше утверждение if неверно.
- Текст для печати на консоли, если оператор if ложен. Это не будет выполнено.
- Проверка того, равно ли значение переменной 0.
- Текст для печати на консоли, если приведенное выше утверждение if истинно. Это не будет выполнено.
- Часть, которая будет выполнена, если приведенное выше утверждение if неверно.
- Текст для печати на консоли, если оператор if ложен. Это будет выполнено.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
побитовое OperaTORs
Битовые операторы выполнять операции на уровне битов над операндами. Сначала операторы преобразуются в битовый уровень, затем над операндами выполняются операции. Когда арифметические операции, такие как сложение и вычитание, выполняются на битовом уровне, результаты могут быть достигнуты быстрее. Они включают:
оператор | Описание |
---|---|
& (побитовое И). | Требуется два числа (операнда), а затем выполняется AND для каждого бита двух чисел. Если оба значения равны 2, AND возвращает 1, в противном случае — 1. |
| (побитовое ИЛИ) | Принимает 2 числа (операнда), а затем выполняет ИЛИ для каждого бита двух чисел. Он возвращает 1, если один из битов равен 1. |
^ (побитовое исключающее ИЛИ) | Принимает 2 числа (операнда), а затем выполняет XOR для каждого бита 2 чисел. Он возвращает 1, если оба бита различны. |
<< (сдвиг влево) | Принимает два числа, затем сдвигает влево биты первого операнда. Второй операнд определяет общее количество мест для сдвига. |
>> (правый сдвиг) | Принимает два числа, затем сдвигает вправо биты первого операнда. Второй операнд определяет количество мест для сдвига. |
~ (побитовое НЕ). | Берет число, а затем инвертирует все его биты. |
#include <iostream> using namespace std; int main() { unsigned int p = 60; // 60 = 0011 1100 unsigned int q = 13; // 13 = 0000 1101 int z = 0; z = p & q; cout << "p&q is : " << z << endl; // 12 = 0000 1100 z = p | q; cout << "p|q is : " << z << endl; // 61 = 0011 1101 z = p ^ q; cout << "p^q is : " << z << endl; // 49 = 0011 0001 z = ~p; cout << "~p is : " << z << endl; // -61 = 1100 0011 z = p << 2; cout << "p<<2 is: " << z << endl; // 240 = 1111 0000 z = p >> 2; cout << "p>>2 is : " << z << endl; // 15 = 0000 1111 return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы. { отмечает начало тела функции main().
- Объявление беззнаковой целочисленной переменной p и присвоение ей значения 60, то есть 0011 1100 в двоичном формате.
- Объявление беззнаковой целочисленной переменной q и присвоение ей значения 13, то есть 0000 1101 в двоичном формате.
- Объявление целочисленной переменной z и инициализация ее значением 0.
- Выполнение побитовой операции & (И) над переменными p и q и сохранение результата в переменной z.
- Печать результата вышеуказанной операции на консоли вместе с другим текстом.
- Выполнение побитового | (ИЛИ) операция над переменными p и q и сохранение результата в переменной z.
- Печать результата вышеуказанной операции на консоли вместе с другим текстом.
- Выполнение побитовой операции ^ (XOR) над переменными p и q и сохранение результата в переменной z.
- Печать результата вышеуказанной операции на консоли вместе с другим текстом.
- Выполнение побитовой операции ~ (НЕ) над переменными p и q и сохранение результата в переменной z.
- Печать результата вышеуказанной операции на консоли вместе с другим текстом.
- Выполнение операции сдвига влево над переменной p и сохранение результата в переменной z.
- Печать результата вышеуказанной операции на консоли вместе с другим текстом.
- Выполнение операции сдвига вправо над переменной p и сохранение результата в переменной z.
- Печать результата вышеуказанной операции на консоли вместе с другим текстом.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
Назначение OperaTORs
Операторы присваивания присваивать значения переменным. Операнд/переменная добавляется в левую часть оператора, а значение добавляется в правую часть оператора. Переменная и значение должны принадлежать к одному и тому же типу данных, в противном случае C++ компилятор выдаст ошибку.
Например:
x = 5;
В приведенном выше примере x — это переменная/операнд, = — оператор присваивания, а 5 — это значение. Вот популярные операторы присваивания в C++:
оператор | Описание |
---|---|
= (простой оператор присваивания) | Присваивает значение справа переменной слева. |
+= (Добавить оператор присваивания AND) | Добавляет значение правого операнда к левому операнду, затем присваивает результат переменной слева. |
-= (оператор вычитания И присваивания) | Вычитает значение правого операнда из левого операнда, затем присваивает результат переменной слева. |
*= (Оператор умножения И присваивания) | Умножает значение левого операнда на правое, затем присваивает результат переменной слева. |
/= (Оператор деления И присваивания) | Делит значение левого операнда на правый операнд, затем присваивает результат переменной слева. |
Например:
#include <iostream> using namespace std; int main() { int x = 5; cout << "Initial value of x is " << x << "\n"; x += 5; cout << "x += 5 gives :" << x << "\n"; x -= 5; cout << "x -= 5 gives : " << x << "\n"; x *= 5; cout << "x *= 5 gives :" << x << "\n"; x /= 5; cout << "x /= 5 gives : " << x << "\n"; return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы.
- { отмечает начало тела функции main().
- Объявление целочисленной переменной x и присвоение ей значения 5.
- Печать значения переменной x вместе с другим текстом на консоли. \n — это символ новой строки. При печати он перемещает курсор на следующую строку.
- Добавление 5 к значению переменной x и присвоение результата переменной x.
- Печать значения переменной x на консоли вместе с другим текстом.
- Вычитание 5 из значения x и присвоение результата переменной x.
- Печать значения переменной x на консоли вместе с другим текстом.
- Умножение значения переменной x на 5 и присвоение результата переменной x.
- Печать значения переменной x на консоли вместе с другим текстом.
- Деление значения переменной x на 5 и присвоение результата переменной x.
- Печать значения переменной x на консоли вместе с другим текстом.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
Другой OperaTORs
Другой OperaTORs оператор sizeof, запятая Operaтор, Условный OperaТор, и OperaПриоритет.
Давайте обсудим других операторов, поддерживаемых C++:
оператор sizeof
Этот оператор определяет размер переменной. Используйте оператор sizeof, чтобы определить размер типа данных.
Например:
#include <iostream> using namespace std; int main() { cout<<"Size of int : "<< sizeof(int) << "\n"; cout<<"Size of char : " << sizeof(char) << "\n"; cout<<"Size of float : " << sizeof(float) << "\n"; cout<<"Size of double : " << sizeof(double) << "\n"; return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы. { отмечает начало тела функции main().
- Определение размера целочисленного типа данных с помощью оператора sizeof и печать его вместе с другим текстом на консоли.
- Определение размера символьного типа данных с помощью оператора sizeof и печать его вместе с другим текстом на консоли.
- Определение размера типа данных float с помощью оператора sizeof и печать его вместе с другим текстом на консоли.
- Определение размера типа данных float с помощью оператора sizeof и печать его вместе с другим текстом на консоли.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
Запятая Operaтор
" оператор запятой (,) запускает выполнение последовательности операций. Он выражает первый операнд и отбрасывает результат. Затем он оценивает второй операнд и возвращает значение и тип.
#include <iostream> using namespace std; int main() { int x, y; y = 100; x = (y++, y + 10, 99 + y); cout << x; return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы. { отмечает начало тела функции main().
- Объявление двух целочисленных переменных x и y.
- Присвоение переменной ya значения 100.
- Увеличение значения y и присвоение результата переменной x. Он начинается с y, равного 100, затем увеличивает его до 101 (y++). Затем y прибавляется к 10. Наконец, y, все еще равный 101, прибавляется к 99, давая 200. x теперь равно 200.
- Вывод значения переменной x на консоль.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
Условный Operaтор
Этот оператор оценивает условие и действует на основе результата оценки.
Синтаксис:
Condition ? Expression2 : Expression3;
Параметры:
- Условие — это условие, которое должно быть оценено.
- Выражение1 — это выражение, которое будет выполнено, если условие истинно.
- Выражение3 — это выражение, которое будет выполнено, если условие ложно.
Например:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
Вывод:
Вот скриншот кода:
Пояснение к коду:
- Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
- Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
- Вызов функции main(), внутри которой должна быть добавлена логика программы. { отмечает начало тела функции main().
- Объявление двух целочисленные переменные а и б. Переменной a присвоено значение 1.
- Присвоение значения переменной b. Если переменная a меньше 10, b будет присвоено значение 2, в противном случае b будет присвоено значение 5.
- Печать значения переменной b на консоли вместе с другим текстом.
- Функция main() должна возвращать значение, если программа работает нормально.
- Конец тела функции main().
OperaПриоритет
Одна операция может иметь более одного оператора. В этом случае приоритет оператора определяет тот, который вычисляется первым.
В следующем списке показан приоритет операторов в C++, с уменьшением приоритета слева направо:
(), [],*, /, %, +/-, << , >>, == , !=, ^, |, &&, ||, ?:, =, +=, -=, *= "="
Итого
- OperaТоры — это символы для выполнения логических и арифметических операций.
- Арифметические операторы помогают нам выполнять различные арифметические операции с операндами.
- Операторы отношения помогают нам выполнять различные операции сравнения операндов.
- Логические операторы помогают нам выполнять различные логические операции с операндами.
- Битовые операторы помогите нам выполнять побитовые операции с операндами.
- Операторы присваивания помогают нам выполнять различные арифметические операции с операндами.
- Оператор sizeof возвращает размер переменной или типа данных.
- Оператор запятая выполняет последовательность операций.
- Условный оператор оценивает условие и действует на основе результата.