Un operador es un símbolo que opera sobre un valor para realizar cálculos matemáticos o lógicos específicos. Forman la base de cualquier lenguaje de programación. En C++, tenemos operadores integrados para proporcionar la funcionalidad requerida.
Un operador opera los operandos . Por ejemplo,
int c = a + b;
Aquí, ‘+’ es el operador de suma. ‘a’ y ‘b’ son los operandos que se están ‘añadiendo’.
Los operadores en C++ se pueden clasificar en 6 tipos:
- Operadores aritméticos
- Operadores relacionales
- Operadores logicos
- Operadores bit a bit
- Operadores de Asignación
- Operadores ternarios o condicionales
1) Operadores Aritméticos
Estos operadores se utilizan para realizar operaciones aritméticas o matemáticas en los operandos. Por ejemplo, ‘+’ se usa para sumar, ‘-‘ se usa para restar, ‘*’ se usa para multiplicar, etc.
Los operadores aritméticos se pueden clasificar en 2 tipos:
A) Operadores Unarios: Estos operadores operan o trabajan con un solo operando. Por ejemplo: Operadores de incremento(++) y decremento(–).
Nombre | Símbolo | Descripción | Ejemplo |
---|---|---|---|
Operador de incremento | ++ | Aumenta el valor entero de la variable en uno |
int a = 5; un++; // devuelve 6 |
Operador de decremento | — | Disminuye el valor entero de la variable en uno |
int a = 5; a-; // devuelve 4 |
Ejemplo:
C++
// CPP Program to demonstrate the increment // and decrement operators #include <iostream> using namespace std; int main() { int a = 10; cout << "a++ is " << a++ << endl; cout << "++a is " << ++a << endl; int b = 15; cout << "b-- is " << b-- << endl; cout << "--b is " << --b << endl; return 0; }
a++ is 10 ++a is 12 b-- is 15 --b is 13
Nota: ++a y a++ , ambos son operadores de incremento, sin embargo, ambos son ligeramente diferentes.
En ++a , primero se incrementa el valor de la variable y luego se usa en el programa. En a++ , primero se asigna el valor de la variable y luego se incrementa. De manera similar sucede con el operador de decremento.
B) Operadores Binarios: Estos operadores operan o trabajan con dos operandos. Por ejemplo: suma (+), resta (-), etc.
Nombre | Símbolo | Descripción | Ejemplo |
---|---|---|---|
Suma | + | Agrega dos operandos |
int a = 3, b = 6; intc = a+b; // c = 9 |
Sustracción | – | Resta el segundo operando del primero |
int a = 9, b = 6; int c = ab; // c = 3 |
Multiplicación | * | Multiplica dos operandos |
int a = 3, b = 6; intc = a*b; // c = 18 |
División | / | Divide el primer operando por el segundo operando |
int a = 12, b = 6; int c = a/b; // c = 2 |
Operación Módulo | % | Devuelve el resto una división entera |
int a = 8, b = 6; intc = a%b; // c = 2 |
Nota: El operador Modulo operator(%) solo debe usarse con números enteros.
Ejemplo:
C++
// CPP Program to demonstrate the Binary Operators #include <iostream> using namespace std; int main() { int a = 8, b = 3; // Addition operator cout << "a + b = " << (a + b) << endl; // Subtraction operator cout << "a - b = " << (a - b) << endl; // Multiplication operator cout << "a * b = " << (a * b) << endl; // Division operator cout << "a / b = " << (a / b) << endl; // Modulo operator cout << "a % b = " << (a % b) << endl; return 0; }
a + b = 11 a - b = 5 a * b = 24 a / b = 2 a % b = 2
2) Operadores relacionales
Estos operadores se utilizan para la comparación de los valores de dos operandos. Por ejemplo, ‘>’ comprueba si un operando es mayor que el otro operando o no, etc. El resultado devuelve un valor booleano, es decir, verdadero o falso.
Nombre | Símbolo | D escripción | Ejemplo |
---|---|---|---|
Es igual a | == | Comprueba si ambos operandos son iguales |
int a = 3, b = 6; a==b; // devuelve falso |
Mas grande que | > | Comprueba si el primer operando es mayor que el segundo operando |
int a = 3, b = 6; a>b; // devuelve falso |
Mayor qué o igual a | >= | Comprueba si el primer operando es mayor o igual que el segundo operando |
int a = 3, b = 6; a>=b; // devuelve falso |
Menos que | < | Comprueba si el primer operando es menor que el segundo operando |
int a = 3, b = 6; a<b; // devuelve verdadero |
Menos que o igual a | <= | Comprueba si el primer operando es menor o igual que el segundo operando |
int a = 3, b = 6; a<=b; // devuelve verdadero |
No igual a | != | Comprueba si ambos operandos no son iguales |
int a = 3, b = 6; a!=b; // devuelve verdadero |
Ejemplo:
C++
// CPP Program to demonstrate the Relational Operators #include <iostream> using namespace std; int main() { int a = 6, b = 4; // Equal to operator cout << "a == b is " << (a == b) << endl; // Greater than operator cout << "a > b is " << (a > b) << endl; // Greater than or Equal to operator cout << "a >= b is " << (a >= b) << endl; // Lesser than operator cout << "a < b is " << (a < b) << endl; // Lesser than or Equal to operator cout << "a <= b is " << (a <= b) << endl; // true cout << "a != b is " << (a != b) << endl; return 0; }
a == b is 0 a > b is 1 a >= b is 1 a < b is 0 a <= b is 0 a != b is 1
Aquí, 0 denota falso y 1 denota verdadero . Para leer más sobre esto, consulte el artículo – Operadores relacionales .
3) Operadores Lógicos
Estos operadores se utilizan para combinar dos o más condiciones o restricciones o para complementar la evaluación de la condición original en consideración. El resultado devuelve un valor booleano, es decir, verdadero o falso .
Nombre | Símbolo | Descripción | Ejemplo |
---|---|---|---|
Y lógico | && | Devuelve verdadero solo si todos los operandos son verdaderos o distintos de cero |
int a = 3, b = 6; a&b; // devuelve verdadero |
O lógico | || | Devuelve verdadero si cualquiera de los operandos es verdadero o distinto de cero |
int a = 3, b = 6; a||b; // devuelve verdadero |
NO lógico | ! | Devuelve verdadero si el operando es falso o cero |
int a = 3; !a; // devuelve falso |
Ejemplo:
C++
// CPP Program to demonstrate the Logical Operators #include <iostream> using namespace std; int main() { int a = 6, b = 4; // Logical AND operator cout << "a && b is " << (a && b) << endl; // Logical OR operator cout << "a ! b is " << (a > b) << endl; // Logical NOT operator cout << "!b is " << (!b) << endl; return 0; }
a && b is 1 a ! b is 1 !b is 0
Aquí, 0 denota falso y 1 denota verdadero . Para leer más sobre esto, consulte el artículo – Operadores lógicos .
4) Operadores bit a bit
Estos operadores se utilizan para realizar operaciones a nivel de bits en los operandos. Los operadores se convierten primero a nivel de bits y luego se realiza el cálculo en los operandos. Las operaciones matemáticas como la suma, la resta, la multiplicación, etc. se pueden realizar a nivel de bit para un procesamiento más rápido.
Nombre | Símbolo | Descripción | Ejemplo |
---|---|---|---|
Y binario | & | Copia un bit al resultado evaluado si existe en ambos operandos |
int a = 2, b = 3; (a y b); //devuelve 2 |
O binario | | | Copia un bit al resultado evaluado si existe en alguno de los operandos |
int a = 2, b = 3; (a | b); //devuelve 3 |
XOR binario | ^ | Copia el bit al resultado evaluado si está presente en cualquiera de los operandos pero no en ambos |
int a = 2, b = 3; (a ^ b); //devuelve 1 |
Shift izquierdo | << | Cambia el valor a la izquierda por el número de bits especificado por el operando derecho. |
int a = 2, b = 3; (un << 1); //devuelve 4 |
Giro a la derecha | >> | Cambia el valor a la derecha por el número de bits especificado por el operando derecho. |
int a = 2, b = 3; (un >> 1); //devuelve 1 |
Complemento de uno | ~ | Cambia dígitos binarios 1 a 0 y 0 a 1 |
int b = 3; (~b); //devuelve -4 |
Nota: Solo los tipos de datos char e int se pueden usar con operadores bit a bit.
Ejemplo:
C++
// CPP Program to demonstrate the Relational Operators #include <iostream> using namespace std; int main() { int a = 6, b = 4; // Equal to operator cout << "a == b is " << (a == b) << endl; // Greater than operator cout << "a > b is " << (a > b) << endl; // Greater than or Equal to operator cout << "a >= b is " << (a >= b) << endl; // Lesser than operator cout << "a < b is " << (a < b) << endl; // Lesser than or Equal to operator cout << "a <= b is " << (a <= b) << endl; // true cout << "a != b is " << (a != b) << endl; return 0; }
a & b = 4 a | b = 6 a ^ b = 2 a>>1 = 3 a<<1 = 12 ~(a) = -7
Para obtener más información al respecto, consulte el artículo: Operadores bit a bit .
5) Operadores de asignación
Estos operadores se utilizan para asignar valor a una variable. El operando del lado izquierdo del operador de asignación es una variable y el operando del lado derecho del operador de asignación es un valor. El valor del lado derecho debe ser del mismo tipo de datos que la variable del lado izquierdo; de lo contrario, el compilador generará un error.
Nombre | Símbolo | Descripción | Ejemplo |
---|---|---|---|
Operador de asignación | = | Asigna el valor de la derecha a la variable de la izquierda |
int a = 2; // un = 2 |
Operador de adición y asignación | += | Primero suma el valor actual de la variable de la izquierda al valor de la derecha y luego asigna el resultado a la variable de la izquierda |
int a = 2, b = 4; a+=b; // un = 6 |
Operador de resta y asignación | -= | Primero resta el valor de la derecha del valor actual de la variable de la izquierda y luego asigna el resultado a la variable de la izquierda |
int a = 2, b = 4; a-=b; // un = -2 |
Operador de multiplicación y asignación | *= | Primero multiplica el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda |
int a = 2, b = 4; a*=b; // un = 8 |
Operador de división y asignación | /= | Primero divide el valor actual de la variable de la izquierda por el valor de la derecha y luego asigna el resultado a la variable de la izquierda |
int a = 4, b = 2; a/=b; // un = 2 |
Ejemplo:
C++
// CPP Program to demonstrate the Assignment Operators #include <iostream> using namespace std; int main() { int a = 6, b = 4; // Assignment Operator cout << "a = " << a << endl; // Add and Assignment Operator cout << "a += b is " << (a += b) << endl; // Subtract and Assignment Operator cout << "a -= b is " << (a -= b) << endl; // Multiply and Assignment Operator cout << "a *= b is " << (a *= b) << endl; // Divide and Assignment Operator cout << "a /= b is " << (a /= b) << endl; return 0; }
a = 6 a += b is 10 a -= b is 6 a *= b is 24 a /= b is 6
6) Operadores ternarios o condicionales (?:)
Este operador devuelve el valor basado en la condición.
Expression1? Expression2: Expression3
¿ El operador ternario ? determina la respuesta sobre la base de la evaluación de Expression1 . Si es true , Expression2 se evalúa y se usa como respuesta para la expresión. Si Expression1 es false , Expression3 se evalúa y se utiliza como respuesta para la expresión.
Este operador toma tres operandos , por lo que se le conoce como Operador Ternario.
Ejemplo:
C++
// CPP Program to demonstrate the Conditional Operators #include <iostream> using namespace std; int main() { int a = 3, b = 4; // Conditional Operator int result = (a < b) ? b : a; cout << "The greatest number is " << result << endl; return 0; }
The greatest number is 4
7) Hay algunos otros operadores comunes disponibles en C++ además de los operadores discutidos anteriormente. La siguiente es una lista de estos operadores discutidos en detalle:
A) Operador sizeof: Este operador unario se utiliza para calcular el tamaño de su operando o variable.
sizeof(char); // returns 1
B) Operador de coma (,): este operador binario (representado por el token) se usa para evaluar su primer operando y descarta el resultado, luego evalúa el segundo operando y devuelve este valor (y tipo). Se utiliza para combinar varias expresiones juntas.
int a = 6; int b = (a+1, a-2, a+5); // b = 10
C) -> Operador: Este operador se utiliza para acceder a las variables de clases o estructuras.
cout<<emp->first_name;
D) Operador de conversión: este operador unario se utiliza para convertir un tipo de datos en otro.
float a = 11.567; int c = (int) a; // returns 11
E) Operador Punto (.): Este operador se utiliza para acceder a miembros de variables de estructura u objetos de clase en C++.
cout<<emp.first_name;
F) Operador &: Este es un operador puntero y se usa para representar la dirección de memoria de un operando.
G) * Operador: Este es un Operador de Indirección
C++
// CPP Program to demonstrate the & and * Operators #include <iostream> using namespace std; int main() { int a = 6; int* b; int c; // & Operator b = &a; // * Operator c = *b; cout << " a = " << a << endl; cout << " b = " << b << endl; cout << " c = " << c << endl; return 0; }
a = 6 b = 0x7ffe2064d048 c = 6
H) << Operador: Este es el operador de salida. Imprime el valor de salida.
I) >> Operador: Este es el operador de entrada. Obtiene el valor de entrada.
int a; cin>>a; cout<<a;
Tabla de precedencia de operadores
Precedencia | Operador | Descripción | Asociatividad |
---|---|---|---|
1. | () | Paréntesis (llamada de función) | de izquierda a derecha |
[] | Corchetes (subíndice de array) | ||
. | Selección de miembros a través del nombre del objeto | ||
-> | Selección de miembros a través de un puntero | ||
++/– | Incremento/decremento de sufijo | ||
2. | ++/– | Prefijo incremento/decremento | De derecha a izquierda |
+/- | Más/menos unario | ||
!~ | Negación lógica/complemento bit a bit | ||
(escribe) | Cast (convertir valor a valor temporal de tipo) | ||
* | Desreferencia | ||
& | Dirección (del operando) | ||
tamaño de | Determine el tamaño en bytes en esta implementación | ||
3. | *,/,% | Multiplicación/división/módulo | de izquierda a derecha |
4. | +/- | Suma resta | de izquierda a derecha |
5. | << , >> | Desplazamiento bit a bit a la izquierda, desplazamiento bit a bit a la derecha | de izquierda a derecha |
6. | < , <= | Relacional menor que/menor que o igual a | de izquierda a derecha |
> , >= | Relacional mayor que/mayor que o igual a | de izquierda a derecha | |
7. | == , != | Relacional es igual a/no es igual a | de izquierda a derecha |
8. | & | Y bit a bit | de izquierda a derecha |
9. | ^ | OR exclusivo bit a bit | de izquierda a derecha |
10 | | | Bit a bit inclusivo O | de izquierda a derecha |
11 | && | Y lógico | de izquierda a derecha |
12 | || | O lógico | de izquierda a derecha |
13 | ?: | Condicional ternario | De derecha a izquierda |
14 | = | Asignación | De derecha a izquierda |
+= , -= | Asignación de sumas y restas | ||
*= , /= | Asignación de multiplicación/división | ||
%= , &= | Módulo/asignación AND bit a bit | ||
^= , |= | Asignación OR exclusiva/inclusiva bit a bit | ||
<>= | Asignación de desplazamiento bit a bit a la izquierda/derecha | ||
15. | , | separador de expresiones | de izquierda a derecha |
Publicación traducida automáticamente
Artículo escrito por anshikajain26 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA