📚 Guía Visual de Operadores, Precedencia y Ejemplos en C++ y Java
🔹 1. Precedencia y Asociatividad de Operadores en C++
| Nivel | Operador | Descripción | Asociatividad |
|---|---|---|---|
| 1 | :: | Resolución de ámbito | Izq. → Der. |
| 2 | ++ -- () [] -> . | Incremento/Decremento postfijo, llamada a función, indexación, acceso por referencia o puntero | Izq. → Der. |
| 3 | ++ -- + - ! ~ (type) * & sizeof new delete | Incremento/Decremento prefijo, signos, negación lógica, casteo, desreferencia, dirección, tamaño, gestión de memoria | Der. → Izq. |
| 4 | ->* .* | Puntero a miembro | Izq. → Der. |
| 5 | * / % | Multiplicación, división, módulo | Izq. → Der. |
| 6 | + - | Suma y resta | Izq. → Der. |
| 7 | << >> | Desplazamiento de bits izq./der. | Izq. → Der. |
| 8 | < <= > >= | Comparaciones relacionales | Izq. → Der. |
| 9 | == != | Igualdad y desigualdad | Izq. → Der. |
| 10-12 | `& ^ | ` | AND, XOR, OR a nivel de bits |
| 13-14 | `&& | ` | |
| 15 | ?: | Operador ternario | Der. → Izq. |
| 15 | `= += -= *= /= %= <<= >>= &= ^= | =` | Asignación y asignaciones compuestas |
| 16 | throw | Lanzar excepciones | Izq. → Der. |
| 17 | , | Coma | Izq. → Der. |
💡 Tip: Los operadores de mayor precedencia se ejecutan primero, y si están en el mismo nivel, la asociatividad decide el orden.
🔹 2. Jerarquía de Operadores en Java
| Nivel | Operador |
|---|---|
| 1 | [] () {} |
| 2 | Potencia ^, raíz, módulo % |
| 3 | * / % |
| 4 | + - |
| 5 | < <= > >= |
| 6 | == != |
| 7 | & ^ | (Bitwise AND, XOR, OR) |
| 8 | && |
| 9 | || |
| 10 | ?: (ternario) |
| 11 | = += -= *= /= ... |
📌 Diferencia clave: En Java, los operadores lógicos (&&, ||) cortocircuitan, mientras que en C++ no siempre.
🔹 3. Operadores Lógicos y Tablas de Verdad
| A | B | A OR B | A AND B | A XOR B |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 |
📍 Usos típicos:
- OR (
||o|) → Al menos uno verdadero - AND (
&&o&) → Ambos verdaderos - XOR (
^) → Verdadero si solo uno lo es
🔹 4. Operadores de Desplazamiento de Bits
<<→ Desplaza a la izquierda (multiplica por potencias de 2)>>→ Desplaza a la derecha (divide por potencias de 2, conserva signo)>>>(Java) → Desplazamiento a la derecha sin signo
Ejemplo en C:
int a = 5; // 00000101
printf("%d", a << 1); // 10 (00001010)
printf("%d", a >> 1); // 2 (00000010)
🔹 5. Tipos de Datos en Java y C++
Java (primitivos): byte, short, int, long, float, double, char, boolean
C++ (rangos típicos):
| Tipo | Rango aproximado |
|---|---|
char | -128 a 127 |
int | -2,147,483,648 a 2,147,483,647 |
float | ±3.4E-38 a ±3.4E38 |
double | ±1.7E-308 a ±1.7E308 |
🔹 6. Palabras Reservadas en C++
Ejemplos:auto, bool, class, const, delete, double, for, if, new, private, public, return, switch, try, void, while.
💡 Importante: No se pueden usar como nombres de variables o funciones.
🔹 7. Ejemplos de Bucles en Java y C++
Java:
for (int i = 10, j = 1; i > 0; i--, j++)
System.out.print(i + " ");
C++:
for (int i = 0; i < 4; i++)
for (int j = 0; j < 3; j++)
printf("%d ", (i + 1) * j);
📌 Resumen Visual
- C++ y Java comparten gran parte de la lógica en operadores, pero difieren en cortocircuito, tipos de datos y sintaxis en ciertos operadores.
- La precedencia define el orden de evaluación; la asociatividad define la dirección cuando hay empate.
- Los desplazamientos de bits son muy útiles en optimización y programación de bajo nivel.
- Las tablas de verdad ayudan a entender el comportamiento lógico sin ejecutar código.


Replica a Píldoras TAI de Anacrolibrum – Anacrolibrum Cancelar la respuesta