English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderemos C ++Diferentes tipos de operadores. En la programación, los operadores son símbolos que realizan operaciones en valores o variables.
Los operadores son símbolos que realizan operaciones en variables y valores. Por ejemplo,+Es el operador utilizado para la adición, mientras que - Es el operador utilizado para la sustracción.
C ++中的运算符可以分为六种类型:
算术运算符
operador de asignación
Operadores de relación
Operadores lógicos
Operadores de bits
其他运算符
算术运算符用于对变量和数据执行算术运算。例如,
a + b;
在此,+运算符用于将两个变量a和b相加。同样,C ++los operadores en otros operadores pueden dividirse en seis tipos:
Supongamos que el valor de la variable A es 10,el valor de la variable B es 2En,
Operadores | Descripción | Ejemplo |
---|---|---|
+ | 0, entonces: | operador de decremento, el valor entero disminuye + multiplicar dos operandos 30 |
- | sumar dos operandos | operador de decremento, el valor entero disminuye - multiplicar dos operandos -10 |
* | restar el segundo operando del primer operando | operador de decremento, el valor entero disminuye * multiplicar dos operandos 2B dará |
/ | 00 | molleja la fracción entre el numerador y el denominador / B 2 |
% | A dará | operador de módulo, el resto de la división entera |
++ | B % A dará 0 1 | operador de decremento, el valor entero disminuye++ Se obtendrá 11 |
-- | operador de incremento, el valor entero aumenta 1 | operador de decremento, el valor entero disminuye-- Se obtendrá 9 |
示例 #include <iostream> using namespace std; int a, b; a = 7; b = 2; // :operadores aritméticos imprimir la división de a entre b + cout << "a + b) << endl; // imprimir la suma de a y b imprimir la división de a entre b - cout << "a - b) << endl; // imprimir la diferencia entre a y b imprimir la división de a entre b * cout << "a * b) << endl; // imprimir el producto de a y b imprimir la división de a entre b / cout << "a / b) << endl; // imprimir el módulo (resto) de a y b cout << "a % b = " << (a % b) << endl; return 0; }
Resultados de salida
a + b = 9 a - b = 5 a * b = 14 a / b = 3 a % b = 1
Aquí, el operador+,- y * calculan la suma, resta y multiplicación respectivamente, como esperamos.
/ operador de división
Nota: las operaciones en nuestro programa (a / b). / El operador es el operador de división.
A partir del ejemplo anterior, podemos ver que si dividimos un entero por otro entero, obtendremos el cociente. Pero, si el divisor o el dividendo es un número de coma flotante, obtendremos el resultado en forma decimal.
En C++En, 7/2 = 3 7.0 / 2 = 3.5 7 / 2.0 = 3.5 7.0 / 2.0 = 3.5
operador % módulo
El operador % de módulo calcula el residuo. Cuando a (9) dividido por b(4) con un resto de1.
Nota:La operación % solo se puede usar con enteros.
C ++También se proporcionan operadores de incremento y decremento:++y--.
++aumentar el valor del operando1.
-- reducir el valor del operando1.
Por ejemplo,
int num = 5; // num aumenta1 ++num;
Aquí, el valor de num desde el valor inicial5aumentar a6.
// el funcionamiento de los operadores de incremento y decremento 示例 #include <iostream> using namespace std; int a = 10, b = 100, result_a, result_b; // sumar a1y almacenamos el resultado en result_a result_a = ++a; cout << "result_a = " << result_a << endl; // reducir b1y almacenamos el resultado en result_b result_b = --b; cout << "result_b = " << result_b << endl; return 0; }
Resultados de salida
result_a = 11 result_b = 99
En el programa anterior, utilizamos++y-operador como prefijo. También podemos usar estos operadores como sufijo.
Estos operadores tienen diferencias ligeras al actuar como prefijo y como sufijo.
En C ++En, el operador de asignación se utiliza para asignar valores a las variables. Por ejemplo,
// }}5Asignación a a a = 5;
Aquí, le dimos un valor a la variable a5.
Operadores | Ejemplo | Equivale a |
---|---|---|
= | a = b; | a = b; |
+= | a += b; | a = a + b; |
-= | a -= b; | a = a - b; |
*= | a *= b; | a = a * b; |
/= | a /= b; | a = a / b; |
%= | a %= b; | a = a % b; |
示例 #include <iostream> using namespace std; int a, b, temp; // Asignación de a2 a = 2; //Asignación de b7 b = 7; // Asigna el valor de a a temp temp = a; // temp será 2 cout << "temp = " << temp << endl; // Asigna la suma de a y b a a a += b; // a = a +b cout << "a = " << a << endl; return 0; }
Resultados de salida
temp = 2 a = 9
Los operadores de relación se utilizan para verificar la relación entre dos operandos. Por ejemplo,
// Verifica si a es mayor que b a > b;
Aquí, > es un operador de relación. Verifica si a es mayor que b.
Si esta relación estrue,entonces devuelve1;Si esta relación esfalse,entonces devuelve0.
Supongamos que el valor de la variable A es 5,el valor de la variable B es 11, entonces:
Operadores | Descripción | Ejemplo |
---|---|---|
== | Verifica si los valores de los operandos son iguales, si es así, la condición es verdadera. | (A == B) no es verdadero. |
!= | Verifica si los valores de los operandos son iguales, si no lo son, la condición es verdadera. | (A != B) es verdadero. |
> | Verifica si el valor del operando izquierdo es mayor que el valor del operando derecho, si es así, la condición es verdadera. | (A > B) no es verdadero. |
< | Verifica si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición es verdadera. | (A < B) es verdadero. |
>= | Verifica si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, si es así, la condición es verdadera. | (A >= B) no es verdadero. |
<= | Verifica si el valor del operando izquierdo es menor o igual que el valor del operando derecho, si es así, la condición es verdadera. | (A <= B) es verdadero. |
示例 #include <iostream> using namespace std; int a, b; a = 3; b = 5; bool result; result = (a == b); // false cout << "3 == 5 El resultado de la calculación es " << result << endl; result = (a != b); // true cout << "3 != 5 El resultado de la calculación es " << result << endl; result = a > b; // false cout << "3 > 5 El resultado de la calculación es " << result << endl; result = a < b; // true cout << "3 < 5 El resultado de la calculación es " << result << endl; result = a >= b; // false cout << "3 >= 5 El resultado de la calculación es " << result << endl; result = a <= b; // true cout << "3 <= 5 El resultado de la calculación es " << result << endl; return 0; }
Resultados de salida
3 == 5 El resultado de la calculación es 0 3 != 5 El resultado de la calculación es 1 3 > 5 El resultado de la calculación es 0 3 < 5 El resultado de la calculación es 1 3 >= 5 El resultado de la calculación es 0 3 <= 5 El resultado de la calculación es 1
Nota:Los operadores de relación se utilizan para decisiones y bucles.
Los operadores lógicos se utilizan para verificar si una expresión estrueofalse。Si la expresión estrue,entonces devuelve1;Si la expresión esfalse,entonces devuelve0.
p> Supongamos que el valor de la variable A es 1,si el valor de la variable B es 0, entonces:
Operadores | Descripción | Ejemplo |
---|---|---|
&& | Operador lógico y. Si ambos operandos son distinto de cero, la condición es verdadera. | (A && B) es falso. |
|| | Operador lógico o. Si cualquier uno de los operandos es distinto de cero, la condición es verdadera. | (A || B) es verdadero. |
! | llamado operador lógico no. Se utiliza para revertir el estado lógico de los operandos. Si la condición es verdadera, el operador lógico no lo convertirá en falso. | !(A && B) es verdadero. |
En C ++en donde los operadores lógicos se utilizan comúnmente para la toma de decisiones. Para entender mejor los operadores lógicos, veamos los siguientes ejemplos,
Supongamos que, a = 5 b = 8 Supongamos que, (a > 3) && (b > 5) el resultado de la computación es true (a > 3) && (b < 5) el resultado de la computación es false (a > 3) || (b > 5) el resultado de la computación es true (a > 3) || (b < 5) el resultado de la computación es true (a < 3) || (b < 5) el resultado de la computación es false !(a == 3) el resultado de la computación es true !(a > 3) el resultado de la computación es false
示例 #include <iostream> using namespace std; bool result; result = (3 != 5) && (3 < 5); // true cout << "(3 != 5) && (3 < 5) el resultado de la computación es " << result << endl; result = (3 == 5) && (3 < 5); // false cout << "(3 == 5) && (3 < 5) el resultado de la computación es " << result << endl; result = (3 == 5) && (3 > 5); // false cout << "(3 == 5) && (3 > 5) el resultado de la computación es " << result << endl; result = (3 != 5) || (3 < 5); // true cout << "(3 != 5) || (3 < 5) el resultado de la computación es " << result << endl; result = (3 != 5) || (3 > 5); // true cout << "(3 != 5) || (3 > 5) el resultado de la computación es " << result << endl; result = (3 == 5) || (3 > 5); // false cout << "(3 == 5) || (3 > 5) el resultado de la computación es " << result << endl; result = !(5 == 2); // true cout << "!(5 == 2) el resultado de la computación es " << result << endl; result = !(5 == 5); // false cout << "!(5 == 5) el resultado de la computación es " << result << endl; return 0; }
Resultados de salida
(3 != 5) && (3 < 5) el resultado de la computación es 1 (3 == 5) && (3 < 5) el resultado de la computación es 0 (3 == 5) && (3 > 5) el resultado de la computación es 0 (3 != 5) || (3 < 5) el resultado de la computación es 1 (3 != 5) || (3 > 5) el resultado de la computación es 1 (3 == 5) || (3 < 5) el resultado de la computación es 0 !(5 == 2) el resultado de la computación es 1 !(5 == 5) el resultado de la computación es 0
Uso de programas de operadores lógicos
(3!= 5) && (3 <5) tiene un valor de1, porque los dos operandos(3!= 5) y (3 <5) son1(true).
(3 == 5) && (3 <5) tiene un valor de 0, porque el operando(3 == 5) tiene un valor de 0(false).
(3 == 5) && (3> 5) tienen un valor de 0, porque los dos operandos(3 == 5) y (3> 5) todos son 0(false).
(3!= 5) || (3 <5) tiene un valor de1, porque los dos operandos(3!= 5) y (3 <5) son1(true).
(3!= 5) || (3> 5) tiene un valor de1, porque el operando(3!= 5) es1(true).
(3 == 5) || (3> 5) tienen un valor de 0, porque los dos operandos(3 == 5) y (3> 5) todos son 0(false).
!(5 == 2) tiene un valor de1, porque el operando(5 == 2) tiene un valor de 0(false).
!(5 == 5) tiene un valor de 0, porque el operando(5 == 5) es1(true).
En C ++donde los operadores de bits se utilizan para realizar operaciones en bits individuales. Solo se pueden usar con tipos de datos char e int.
En la tabla se muestra C++ Operadores de bits admitidos. Supongamos que el valor de la variable A es 60, el valor de la variable B es 13, entonces:
Operadores | Descripción | Ejemplo |
---|---|---|
& | Si un bit existe en ambos operandos, el operador AND binario copia un bit al resultado. | (A & B) se convertirá en 12, es decir, 0000 1100 |
| | Si un bit existe en cualquier operando, el operador OR binario copia un bit al resultado. | (A | B) se convertirá en 61es decir 0011 1101 |
^ | Si un bit existe en uno de los operandos pero no en ambos, el operador de XOR binario copia un bit al resultado. | (A ^ B) se convertirá en 49es decir 0011 0001 |
~ | El operador de complemento a dos es un operador unario, que tiene el efecto de "inversión", es decir, 0 se convierte en1,1en 0. | (~A) se convertirá en -61es decir 1100 0011es una forma de representación de complemento a dos de un número binario con signo. |
<< | Operador de desplazamiento a la izquierda en binario. El valor del operando izquierdo se desplaza a la izquierda en el número de位数 especificado por el operando derecho. | A << 2 Se obtendrá 240, es decir 1111 0000 |
>> | Operador de desplazamiento a la derecha en binario. El valor del operando izquierdo se desplaza a la derecha en el número de位数 especificado por el operando derecho. | A >> 2 Se obtendrá 15, es decir, 0000 1111 |
Para obtener más información, visiteC ++Operadores de bits.
Además de los operadores discutidos anteriormente, también hay otros operadores como sizeof, ?, ., & que no se pueden clasificar uniformemente en un tipo o otro. Aprenderemos más sobre estos operadores en futuros tutoriales.
La siguiente tabla enumera los operadores C++ Otros operadores importantes que admite.
Operadores | Descripción |
---|---|
sizeof | Operador sizeofDevuelve el tamaño de la variable. Por ejemplo, sizeof(a) devolverá 4, donde a es un entero. |
Condition ? X : Y | Operador condicional.Si Condition es verdadero ? entonces el valor es X : de lo contrario el valor es Y. |
, | Operador de comaEjecutarán sucesivamente una serie de operaciones. El valor de toda la expresión de coma es el valor de la última expresión de la lista separada por comas. |
.(punto) y ->(flecha) | Operador de miembroUsado para referirse a los miembros de las clases, estructuras y uniones. |
Cast | Operador de conversión forzadaConvertir un tipo de datos en otro. Por ejemplo, int(2.2(000) 2. |
& | Operador de puntero & Devuelve la dirección de la variable. Por ejemplo, &a; devolverá la dirección real de la variable. |
* | Operador de puntero * Apunta a una variable. Por ejemplo:*var; apuntará a la variable var. |
La prioridad de los operadores determina la combinación de elementos en la expresión. Esto afecta a cómo se calcula una expresión. Algunos operadores tienen una prioridad más alta que otros, por ejemplo, los operadores de multiplicación y división tienen una prioridad más alta que los operadores de suma y resta.
Por ejemplo x = 7 + 3 * 2Aquí, x se asigna el valor 13, en lugar de 20, porque el operador * Tiene un valor + Un nivel de prioridad más alto, por lo que se calcula primero la multiplicación 3*2Luego se suma 7.
La siguiente tabla enumera los operadores según su prioridad de operadores, desde la más alta a la más baja, los operadores de prioridad más alta aparecen en la parte superior de la tabla, y los operadores de prioridad más baja aparecen en la parte inferior. En la expresión, los operadores de prioridad más alta se calculan primero.
Categoría | Operadores | Asociatividad |
---|---|---|
Prefijo | () [] -> . ++ - - | De izquierda a derecha |
Unario | + - ! ~ ++ - - (type)* & sizeof | De derecha a izquierda |
Multiplicación y división | * / % | De izquierda a derecha |
Suma y resta | + - | De izquierda a derecha |
Desplazamiento | << >> | De izquierda a derecha |
Relacional | < <= > >= | De izquierda a derecha |
Igual | == != | De izquierda a derecha |
AND bit a bit | & | De izquierda a derecha |
XOR bit a bit | ^ | De izquierda a derecha |
OR bit a bit | | | De izquierda a derecha |
AND lógico | && | De izquierda a derecha |
OR lógico | || | De izquierda a derecha |
Condicional | ?: | De derecha a izquierda |
Asignación | = += -= *= /= %=>>= <<= &= ^= |= | De derecha a izquierda |
Coma | , | De izquierda a derecha |
示例 #include <iostream> using namespace std; // int main() {17 * 6 int num1 = 5 - 17 * 6; // Primero calcule1Expresión equivalente int num2 = 5 - (17 * 6); // Forzar al compilador a calcular5 - 17valor int num3 =5 - 17) * 6; cout << "num1 =1 << endl; cout << "num2 =2 << endl; cout << "num3 =3 << endl; return 0; }
Resultados de salida:
num1 = -97 num2 = -97 num3 = -72
Nota: Debido a que C ++Hay muchos operadores con múltiples prioridades, por lo que se recomienda encarecidamente que usemos paréntesis para que el código sea más legible.
Recomendaciones relacionadas:C++ Prioridad y asociatividad de operadores