Programación D - Operadores
Un operador es un símbolo que le dice al compilador que realice manipulaciones matemáticas o lógicas específicas. El lenguaje D es rico en operadores integrados y proporciona los siguientes tipos de operadores:
- Operadores aritméticos
- Operadores relacionales
- Operadores logicos
- Operadores bit a bit
- Operadores de Asignación
- Operadores varios
Este capítulo explica los operadores aritméticos, relacionales, lógicos, bit a bit, de asignación y otros, uno por uno.
Operadores aritméticos
La siguiente tabla muestra todos los operadores aritméticos compatibles con el lenguaje D. Asumir variableA tiene 10 y variable B sostiene 20 entonces -
Mostrar ejemplos
Operador | Descripción | Ejemplo |
---|---|---|
+ | Agrega dos operandos. | A + B da 30 |
- | Resta el segundo operando del primero. | A - B da -10 |
* | Multiplica ambos operandos. | A * B da 200 |
/ | Divide numerador por denumerador. | B / A da 2 |
% | Devuelve el resto de una división entera. | B% A da 0 |
++ | El operador de incremento aumenta el valor entero en uno. | A ++ da 11 |
- | El operador de decrementos reduce el valor entero en uno. | A-- da 9 |
Operadores relacionales
La siguiente tabla muestra todos los operadores relacionales compatibles con el lenguaje D. Asumir variableA tiene 10 y variable B tiene 20, entonces -
Mostrar ejemplos
Operador | Descripción | Ejemplo |
---|---|---|
== | Comprueba si los valores de dos operandos son iguales o no, si es así, la condición se convierte en verdadera. | (A == B) no es cierto. |
! = | Comprueba si los valores de dos operandos son iguales o no, si los valores no son iguales, la condición se convierte en verdadera. | (A! = B) es cierto. |
> | Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho, si es así, la condición se convierte en verdadera. | (A> B) no es cierto. |
< | Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición se convierte en verdadera. | (A <B) es cierto. |
> = | Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, si es así, la condición se convierte en verdadera. | (A> = B) no es cierto. |
<= | Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho, si es así, la condición se convierte en verdadera. | (A <= B) es cierto. |
Operadores logicos
La siguiente tabla muestra todos los operadores lógicos compatibles con el lenguaje D. Asumir variableA contiene 1 y variable B tiene 0, entonces -
Mostrar ejemplos
Operador | Descripción | Ejemplo |
---|---|---|
&& | Se llama operador AND lógico. Si ambos operandos son distintos de cero, la condición se vuelve verdadera. | (A && B) es falso. |
|| | Se llama Operador OR lógico. Si alguno de los dos operandos es distinto de cero, la condición se cumple. | (A || B) es cierto. |
! | Se llama Operador NOT lógico. Úselo para revertir el estado lógico de su operando. Si una condición es verdadera, entonces el operador lógico NOT hará que sea falsa. | ! (A && B) es cierto. |
Operadores bit a bit
Los operadores bit a bit funcionan en bits y realizan operaciones bit a bit. Las tablas de verdad para &, | y ^ son las siguientes:
pags | 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 |
Suponga si A = 60; y B = 13. En el formato binario serán los siguientes:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ A = 1100 0011
Los operadores Bitwise admitidos por el lenguaje D se enumeran en la siguiente tabla. Suponga que la variable A tiene 60 y la variable B tiene 13, entonces -
Mostrar ejemplos
Operador | Descripción | Ejemplo |
---|---|---|
Y | El operador AND binario copia un bit al resultado si existe en ambos operandos. | (A y B) dará 12, significa 0000 1100. |
| | El operador OR binario copia un bit si existe en cualquiera de los operandos. | (A | B) da 61. Significa 0011 1101. |
^ | El operador binario XOR copia el bit si está configurado en un operando pero no en ambos. | (A ^ B) da 49. Significa 0011 0001 |
~ | El operador de complemento binario es unario y tiene el efecto de "voltear" bits. | (~ A) da -61. Significa 1100 0011 en forma de complemento a 2. |
<< | Operador binario de desplazamiento a la izquierda. El valor de los operandos de la izquierda se mueve a la izquierda el número de bits especificado por el operando de la derecha. | A << 2 da 240. Significa 1111 0000 |
>> | Operador de cambio a la derecha binario. El valor de los operandos de la izquierda se mueve hacia la derecha el número de bits especificado por el operando de la derecha. | A >> 2 da 15. Significa 0000 1111. |
Operadores de Asignación
Los siguientes operadores de asignación son compatibles con el lenguaje D:
Mostrar ejemplos
Operador | Descripción | Ejemplo |
---|---|---|
= | Es un simple operador de asignación. Asigna valores de los operandos del lado derecho al operando del lado izquierdo | C = A + B asigna el valor de A + B a C |
+ = | Es un operador de asignación de AND. Agrega operando derecho al operando izquierdo y asigna el resultado al operando izquierdo | C + = A es equivalente a C = C + A |
- = | Es un operador de asignación Y resta. Resta el operando derecho del operando izquierdo y asigna el resultado al operando izquierdo. | C - = A es equivalente a C = C - A |
* = | Es operador de multiplicación Y asignación. Multiplica el operando derecho con el operando izquierdo y asigna el resultado al operando izquierdo. | C * = A es equivalente a C = C * A |
/ = | Es el operador de división Y asignación. Divide el operando izquierdo con el operando derecho y asigna el resultado al operando izquierdo. | C / = A es equivalente a C = C / A |
% = | Es operador de módulo Y asignación. Toma el módulo usando dos operandos y asigna el resultado al operando izquierdo. | C% = A es equivalente a C = C% A |
<< = | Es operador de desplazamiento Y asignación a la izquierda. | C << = 2 es lo mismo que C = C << 2 |
>> = | Es el operador de desplazamiento Y asignación a la derecha. | C >> = 2 es lo mismo que C = C >> 2 |
& = | Es un operador de asignación AND bit a bit. | C & = 2 es lo mismo que C = C & 2 |
^ = | Es operador de asignación y OR exclusivo bit a bit. | C ^ = 2 es lo mismo que C = C ^ 2 |
| = | Es operador de asignación y OR inclusivo bit a bit | C | = 2 es lo mismo que C = C | 2 |
Operadores miscilares: tamaño y ternario
Hay algunos otros operadores importantes, incluidos sizeof y ? : compatible con D Language.
Mostrar ejemplos
Operador | Descripción | Ejemplo |
---|---|---|
tamaño de() | Devuelve el tamaño de una variable. | sizeof (a), donde a es un número entero, devuelve 4. |
Y | Devuelve la dirección de una variable. | &un; da la dirección real de la variable. |
* | Puntero a una variable. | *un; da puntero a una variable. |
? : | Expresión condicional | Si la condición es verdadera, entonces valor X: De lo contrario, valor Y. |
Precedencia de operadores en D
La precedencia del operador determina la agrupación de términos en una expresión. Esto afecta cómo se evalúa una expresión. Ciertos operadores tienen prioridad sobre otros.
Por ejemplo, el operador de multiplicación tiene mayor precedencia que el operador de suma.
Consideremos una expresión
x = 7 + 3 * 2.
Aquí, a x se le asigna 13, no 20. La simple razón es que el operador * tiene mayor precedencia que +, por lo tanto, 3 * 2 se calcula primero y luego el resultado se suma a 7.
Aquí, los operadores con mayor precedencia aparecen en la parte superior de la tabla, los que tienen la menor prioridad aparecen en la parte inferior. Dentro de una expresión, los operadores de mayor precedencia se evalúan primero.
Mostrar ejemplos
Categoría | Operador | Asociatividad |
---|---|---|
Sufijo | () [] ->. ++ - - | De izquierda a derecha |
Unario | + -! ~ ++ - - (tipo) * & sizeof | De derecha a izquierda |
Multiplicativo | * /% | De izquierda a derecha |
Aditivo | + - | De izquierda a derecha |
Cambio | << >> | De izquierda a derecha |
Relacional | <<=>> = | De izquierda a derecha |
Igualdad | ==! = | De izquierda a derecha |
Y bit a bit | Y | De izquierda a derecha |
XOR bit a bit | ^ | De izquierda a derecha |
O bit a bit | | | De izquierda a derecha |
Y 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 |