Compartir a través de


Operador de asignación y desplazamiento a la derecha (>>=)

Actualización: noviembre 2007

Desplaza hacia la derecha el valor de una variable el número de bits especificado en el valor de una expresión, mantiene el signo y asigna el resultado a la variable.

result >>= expression

Argumentos

  • result
    Cualquier variable numérica.

  • expression
    Cualquier expresión numérica.

Comentarios

Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result >> expression, con la diferencia de que result se evalúa sólo una vez.

El operador >>= desplaza los bits del argumento result hacia la derecha el número de bits especificado en el argumento expression. El bit de signo del argumento result se utiliza para rellenar los dígitos de la izquierda. Los dígitos desplazados hacia la derecha se descartan. El operador enmascara expression para evitar que result se desplace demasiado. Si no, en el caso de que la cantidad de desplazamiento excediera el número de bits del tipo de datos de result, todos los bits originales se alejarían lo suficiente como para dar un resultado trivial. Para garantizar que cada desplazamiento conserva al menos uno de los bits originales, los operadores de desplazamiento utilizan la fórmula siguiente para calcular la cantidad de desplazamiento actual: enmascarar expression (utilizando el operador AND bit a bit) con número de bits menos que el de result.

Ejemplo

Por ejemplo, después de evaluar el siguiente código, la variable temp tiene un valor igual a -4: 14 (11110010 en sistema binario) desplazado hacia la derecha dos bits es igual a -4 (11111100 en sistema binario).

var temp
temp = -14
temp >>= 2

Para mostrar el modo de funcionamiento del enmascaramiento, tenga en cuenta el ejemplo siguiente.

var x : byte = 15;
// A byte stores 8 bits.
// The bits stored in x are 00001111
x >>= 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in x are 00000011
// The value of x is 3
print(x); // Prints 3

Requisitos

Versión 1

Vea también

Conceptos

Precedencia de operadores

Resumen de operadores

Conversión realizada por operadores bit a bit

Referencia

Operador de desplazamiento a la izquierda bit a bit (<<)

Operador de desplazamiento a la derecha bit a bit (>>)

Operador de desplazamiento a la derecha sin signo (>>>)

Operador de asignación (=)