C++ Operadores
Un operador es un símbolo que le indica al compilador que realice operaciones matemáticas o lógicas específicas. C++ incorpora operadores ricos y proporciona los siguientes tipos de operadores:
- Operadores aritméticos
- Operadores relacionales
- Operadores lógicos
- Operadores de bits
- Operadores de asignación
- Operadores misceláneos
Este capítulo presentará uno por uno los operadores aritméticos, relacionales, lógicos, de bits, de asignación y otros operadores.
Operadores aritméticos
La siguiente tabla muestra los operadores aritméticos admitidos por C++.
Supongamos que el valor de la variable A es 10 y el valor de la variable B es 20, entonces:
| Operador | Descripción | Ejemplo |
|---|---|---|
| + | Suma los dos operandos | A + B dará 30 |
| - | Resta el segundo operando del primer operando | A - B dará -10 |
| * | Multiplica los dos operandos | A * B dará 200 |
| / | Divide el numerador por el denominador | B / A dará 2 |
| % | Operador de módulo, el resto después de la división entera | B % A dará 0 |
| ++ | Operador de incremento, aumenta el valor entero en 1 | A++ dará 11 |
| -- | Operador de decremento, disminuye el valor entero en 1 | A-- dará 9 |
Ejemplo
Vea el siguiente ejemplo para conocer los operadores aritméticos disponibles en C++.
Copie y pegue el siguiente programa de C++ en el archivo test.cpp, compile y ejecute el programa.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Line 1 - c 的值是 31 Line 2 - c 的值是 11 Line 3 - c 的值是 210 Line 4 - c 的值是 2 Line 5 - c 的值是 1 Line 6 - c 的值是 10 Line 7 - c 的值是 10
Operadores relacionales
La siguiente tabla muestra los operadores relacionales admitidos por C++.
Supongamos que el valor de la variable A es 10 y el valor de la variable B es 20, entonces:
| Operador | Descripción | Ejemplo |
|---|---|---|
| == | Comprueba si los valores de dos operandos son iguales; si son iguales, la condición es verdadera. | (A == B) no es verdadero. |
| != | Comprueba si los valores de dos operandos son iguales; si no son iguales, la condición es verdadera. | (A != B) es verdadero. |
| > | Comprueba 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. |
| < | Comprueba 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. |
| >= | Comprueba 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. |
| <= | Comprueba 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. |
Ejemplo
Vea el siguiente ejemplo para conocer los operadores relacionales disponibles en C++.
Copie y pegue el siguiente programa de C++ en el archivo test.cpp, compile y ejecute el programa.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Line 1 - a 不等于 b Line 2 - a 不小于 b Line 3 - a 大于 b Line 4 - a 小于或等于 b Line 5 - b 大于或等于 a
Operadores lógicos
La siguiente tabla muestra los operadores lógicos relacionales admitidos por C++.
Supongamos que el valor de la variable A es 1 y el valor de la variable B es 0, entonces:
| Operador | Descripción | Ejemplo |
|---|---|---|
| && | Se llama operador lógico Y (AND). Si ambos operandos son true, la condición es true. | (A && B) es false. |
| || | Se llama operador lógico O (OR). Si cualquiera de los dos operandos es true, la condición es true. | (A || B) es true. |
| ! | Se llama operador lógico de negación (NOT). Se usa para invertir el estado lógico del operando. Si la condición es true, el operador de negación la convierte en false. | !(A && B) es true. |
Ejemplo
Vea el siguiente ejemplo para conocer los operadores lógicos disponibles en C++.
Copie y pegue el siguiente programa de C++ en el archivo test.cpp, compile y ejecute el programa.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Line 1 - 条件为真 Line 2 - 条件为真 Line 4 - 条件不为真 Line 5 - 条件为真
Operadores de bits
Los operadores de bits actúan sobre los bits y realizan operaciones bit a bit. La tabla de verdad de &, | y ^ es la siguiente:
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Supongamos que si A = 60 y B = 13, ahora en formato binario se representan de la siguiente manera:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
La siguiente tabla muestra los operadores de bits admitidos por C++. Supongamos que el valor de la variable A es 60 y el valor de la variable B es 13, entonces:
| Operador | Descripción | Ejemplo |
|---|---|---|
| & | Operación Y (AND) a nivel de bits, realiza la operación "Y" según los bits binarios. Regla de operación: 0&0=0; 0&1=0; 1&0=0; 1&1=1; | (A & B) dará 12, es decir, 0000 1100 |
| | | Operador O (OR) a nivel de bits, realiza la operación "O" según los bits binarios. Regla de operación: 0|0=0; 0|1=1; 1|0=1; 1|1=1; | (A | B) dará 61, es decir, 0011 1101 |
| ^ | Operador XOR (O exclusivo) a nivel de bits, realiza la operación "XOR" según los bits binarios. Regla de operación: 0^0=0; 0^1=1; 1^0=1; 1^1=0; | (A ^ B) dará 49, es decir, 0011 0001 |
| ~ | Operador de complemento (NOT) a nivel de bits, realiza la operación "complemento" según los bits binarios. Regla de operación: ~1=-2; ~0=-1; | (~A) dará -61, es decir, 1100 0011, en forma de complemento a dos de un número binario con signo. |
| << | Operador de desplazamiento a la izquierda binario. Desplaza todos los bits binarios de un operando hacia la izquierda una cierta cantidad (los bits binarios de la izquierda se descartan y la derecha se rellena con 0). | A << 2 dará 240, es decir, 1111 0000 |
| >> | Operador de desplazamiento a la derecha binario. Desplaza todos los bits binarios de un número hacia la derecha una cierta cantidad; para números positivos se rellena con 0 a la izquierda, para números negativos se rellena con 1 a la izquierda, y los bits de la derecha se descartan. | A >> 2 dará 15, es decir, 0000 1111 |
Ejemplo
Vea el siguiente ejemplo para conocer los operadores de bits disponibles en C++.
Copie y pegue el siguiente programa de C++ en el archivo test.cpp, compile y ejecute el programa.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Line 1 - c 的值是 12 Line 2 - c 的值是 61 Line 3 - c 的值是 49 Line 4 - c 的值是 -61 Line 5 - c 的值是 240 Line 6 - c 的值是 15
Operadores de asignación
La siguiente tabla enumera los operadores de asignación admitidos por C++:
| Operador | Descripción | Ejemplo |
|---|---|---|
| = | Operador de asignación simple: asigna el valor del operando derecho al operando izquierdo. | C = A + B asignará el valor de A + B a C. |
| += | Operador de suma y asignación: asigna al operando izquierdo el resultado de sumar el operando derecho al operando izquierdo. | C += A es equivalente a C = C + A. |
| -= | Operador de resta y asignación: asigna al operando izquierdo el resultado de restar el operando derecho del operando izquierdo. | C -= A es equivalente a C = C - A. |
| *= | Operador de multiplicación y asignación: asigna al operando izquierdo el resultado de multiplicar el operando derecho por el operando izquierdo. | C *= A es equivalente a C = C * A. |
| /= | Operador de división y asignación: asigna al operando izquierdo el resultado de dividir el operando izquierdo entre el operando derecho. | C /= A es equivalente a C = C / A. |
| %= | Operador de módulo y asignación: asigna al operando izquierdo el módulo de los dos operandos. | C %= A es equivalente a C = C % A. |
| <<= | Operador de desplazamiento a la izquierda y asignación | C <<= 2 es equivalente a C = C << 2. |
| >>= | Operador de desplazamiento a la derecha y asignación | C >>= 2 es equivalente a C = C >> 2. |
| &= | Operador de AND de bits y asignación | C &= 2 es equivalente a C = C & 2. |
| ^= | Operador de XOR de bits y asignación | C ^= 2 es equivalente a C = C ^ 2. |
| |= | Operador de OR de bits y asignación | C |= 2 es equivalente a C = C | 2. |
Ejemplo
Vea el siguiente ejemplo para comprender los operadores de asignación disponibles en C++.
Copie y pegue el siguiente programa de C++ en el archivo test.cpp, compílelo y ejecútelo.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Line 1 - = 运算符实例,c 的值 = 21 Line 2 - += 运算符实例,c 的值 = 42 Line 3 - -= 运算符实例,c 的值 = 21 Line 4 - *= 运算符实例,c 的值 = 441 Line 5 - /= 运算符实例,c 的值 = 21 Line 6 - %= 运算符实例,c 的值 = 11 Line 7 - <<= 运算符实例,c 的值 = 44 Line 8 - >>= 运算符实例,c 的值 = 11 Line 9 - &= 运算符实例,c 的值 = 2 Line 10 - ^= 运算符实例,c 的值 = 0 Line 11 - |= 运算符实例,c 的值 = 2
Operadores misceláneos
La siguiente tabla enumera algunos otros operadores importantes admitidos por C++:
| Operador | Descripción |
|---|---|
| sizeof | Operador sizeofDevuelve el tamaño de una variable. Por ejemplo, sizeof(a) devolverá 4, donde a es un entero. |
| Condition ? X : Y | Operador condicionalSi Condition es verdadero ? entonces el valor es X : de lo contrario el valor es Y. |
| , | Operador comaEjecuta una serie de operaciones en secuencia. El valor de toda la expresión coma es el valor de la última expresión en la lista separada por comas. |
| . (punto) y -> (flecha) | Operador de acceso a miembrosSe utiliza para referirse a los miembros de clases, estructuras y uniones. |
| Cast | Operador de conversión de tiposConvierte un tipo de datos a otro. Por ejemplo, int(2.2000) devolverá 2. |
| & | Operador de puntero &Devuelve la dirección de una variable. Por ejemplo, &a; dará la dirección real de la variable. |
| * | Operador de puntero *Apunta a una variable. Por ejemplo, *var; apuntará a la variable var. |
Precedencia de operadores en C++
La precedencia de operadores determina la agrupación de los términos en una expresión. Esto afecta la forma en que se evalúa una expresión. Algunos operadores tienen mayor precedencia que otros; por ejemplo, los operadores de multiplicación y división tienen mayor precedencia que los operadores de suma y resta.
Por ejemplo, x = 7 + 3 * 2; aquí, a x se le asigna 13, no 20, porque el operador * tiene mayor precedencia que +, por lo que primero se calcula la multiplicación 3*2 y luego se suma 7.
La siguiente tabla enumera los operadores de mayor a menor precedencia. Los operadores con mayor precedencia aparecen en la parte superior de la tabla y los de menor precedencia en la parte inferior. En una expresión, los operadores con mayor precedencia se evalúan primero.
| Categoría | Operador | Asociatividad |
|---|---|---|
| Sufijo | () [] -> . ++ - - | de izquierda a derecha |
| Unario | + - ! ~ ++ - - (type)* & sizeof | de derecha a izquierda |
| Multiplicación/División | * / % | de izquierda a derecha |
| Suma/Resta | + - | de izquierda a derecha |
| Desplazamiento | << >> | de izquierda a derecha |
| Relacional | < <= > >= | de izquierda a derecha |
| Igualdad | == != | de izquierda a derecha |
| AND de bits | & | de izquierda a derecha |
| XOR de bits | ^ | de izquierda a derecha |
| OR de bits | | | 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 |
Ejemplo
Vea el siguiente ejemplo para comprender la precedencia de operadores en C++.
Copie y pegue el siguiente programa de C++ en el archivo test.cpp, compílelo y ejecútelo.
Compare la diferencia entre tener paréntesis y no tenerlos; esto producirá resultados diferentes. Debido a que (), /, * y + tienen diferentes precedencias, los operadores con mayor precedencia se calcularán primero.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
(a + b) * c / d 的值是 90 ((a + b) * c) / d 的值是 90 (a + b) * (c / d) 的值是 90 a + (b * c) / d 的值是 50Otras extensiones