Operadores de desplazamiento en JavaScript

Operadores de desplazamiento en JavaScript

En JavaScript, existen tres operadores de desplazamiento: el operador de desplazamiento a la izquierda (<<), el operador de desplazamiento a la derecha (>>) y el operador de desplazamiento a la derecha sin signo (>>>). Estos operadores son utilizados para desplazar los bits de un número hacia la izquierda o hacia la derecha.

📋 Aquí podrás encontrar✍
  1. Operador de desplazamiento a la izquierda (
  2. Operador de desplazamiento a la derecha (>>)
  3. Operador de desplazamiento a la derecha sin signo (>>>)
  4. Ejemplos de uso
    1. Desplazamiento a la izquierda
    2. Desplazamiento a la derecha
  5. Conclusión
  6. Preguntas frecuentes
    1. ¿Por qué un número negativo desplazado a la derecha sin signo da un resultado positivo?
    2. ¿Cuál es la diferencia entre el operador de desplazamiento a la derecha y el operador de desplazamiento a la derecha sin signo?
    3. ¿Para qué sirve el operador de desplazamiento a la izquierda?

Operador de desplazamiento a la izquierda (

El operador de desplazamiento a la izquierda (<<) toma dos operandos: el primer operando es el número que se va a desplazar a la izquierda y el segundo operando es el número de bits que se va a desplazar. Por ejemplo, si tenemos el número 5 (cuyo valor binario es 101) y lo desplazamos a la izquierda dos veces, obtendremos el número 20 (cuyo valor binario es 10100). En JavaScript, esto se escribiría como: 5 << 2 // devuelve 20

Es importante tener en cuenta que, al desplazar a la izquierda, se añaden ceros al final del número. Además, el operador de desplazamiento a la izquierda no altera el valor original de la variable.

Operador de desplazamiento a la derecha (>>)

El operador de desplazamiento a la derecha (>>) también toma dos operandos: el primer operando es el número que se va a desplazar a la derecha y el segundo operando es el número de bits que se va a desplazar.

Si el número original es positivo, se añaden ceros al principio del número. Si el número original es negativo, se añaden unos al principio del número.

Por ejemplo, si tenemos el número 16 (cuyo valor binario es 10000) y lo desplazamos a la derecha dos veces, obtendremos el número 4 (cuyo valor binario es 100). En JavaScript, esto se escribiría como:

16 >> 2 // devuelve 4

Es importante tener en cuenta que, al desplazar a la derecha, se eliminan los bits que se desplazan. Además, el operador de desplazamiento a la derecha no altera el valor original de la variable.

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

El operador de desplazamiento a la derecha sin signo (>>>) también toma dos operandos: el primer operando es el número que se va a desplazar a la derecha y el segundo operando es el número de bits que se va a desplazar.

La principal diferencia entre el operador de desplazamiento a la derecha (>>) y el operador de desplazamiento a la derecha sin signo (>>>) es que el operador de desplazamiento a la derecha sin signo siempre añade ceros al principio del número, incluso si el número original es negativo.

Por ejemplo, si tenemos el número -16 (cuyo valor binario es 11111111111111111111111111110000) y lo desplazamos a la derecha dos veces utilizando el operador de desplazamiento a la derecha (>>), obtendremos el número -4 (cuyo valor binario es 11111111111111111111111111111100). Sin embargo, si utilizamos el operador de desplazamiento a la derecha sin signo (>>>), obtendremos el número 1073741820 (cuyo valor binario es 00111111111111111111111111111100). En JavaScript, esto se escribiría como:

-16 >> 2 // devuelve -4
-16 >>> 2 // devuelve 1073741820

Es importante tener en cuenta que, al desplazar a la derecha sin signo, se eliminan los bits que se desplazan. Además, el operador de desplazamiento a la derecha sin signo no altera el valor original de la variable.

Ejemplos de uso

Desplazamiento a la izquierda

El operador de desplazamiento a la izquierda se utiliza a menudo para realizar multiplicaciones rápidas por potencias de dos. Por ejemplo:

2 << 3 // devuelve 16

Este código multiplica 2 por 2 elevado a la tercera potencia (2 * 2 * 2 * 2 = 16).

Desplazamiento a la derecha

El operador de desplazamiento a la derecha se utiliza a menudo en la codificación de colores en JavaScript. Por ejemplo:

var color = 0xFF0000; // rojo
var red = (color >> 16) & 0xFF; // devuelve 255 (255 en valor hexadecimal es FF)
var green = (color >> 8) & 0xFF; // devuelve 0
var blue = color & 0xFF; // devuelve 0

En este ejemplo, estamos extrayendo los componentes rojo, verde y azul de un color en formato hexadecimal.

Conclusión

Los operadores de desplazamiento en JavaScript son una herramienta útil para realizar operaciones rápidas con números binarios. Aunque no son utilizados con tanta frecuencia como otros operadores, son importantes para comprender la manera en que se almacenan y manipulan los números en JavaScript.

Si estás interesado en profundizar en este tema, puedes consultar la documentación oficial de Mozilla sobre los operadores bit a bit en JavaScript.

Preguntas frecuentes

¿Por qué un número negativo desplazado a la derecha sin signo da un resultado positivo?

Cuando utilizas el operador de desplazamiento a la derecha sin signo, los bits que se desplazan siempre son remplazados por ceros, incluso si el número original es negativo. Debido a esta función, el número resultante siempre es positivo.

¿Cuál es la diferencia entre el operador de desplazamiento a la derecha y el operador de desplazamiento a la derecha sin signo?

La principal diferencia entre el operador de desplazamiento a la derecha (>>) y el operador de desplazamiento a la derecha sin signo (>>>) es que el operador de desplazamiento a la derecha sin signo siempre añade ceros al principio del número, incluso si el número original es negativo.

¿Para qué sirve el operador de desplazamiento a la izquierda?

El operador de desplazamiento a la izquierda se utiliza a menudo para realizar multiplicaciones rápidas por potencias de dos.
[nekopost slugs="cargar-el-archivo-json-local-en-variable,obtenga-timezone-javascript,use-exponentes-javascript,cuente-el-numero-de-claves-en-el-objeto-en-javascript,hacer-la-primera-letra-en-minusculas-javascript,no-se-puede-usar-la-declaracion-de-importacion-modulo-externo-en-javas,compruebe-si-todas-las-propiedades-del-objeto-son-nulas-en-javascript,obtener-href-en-javascript,convertir-la-cadena-al-caso-del-titulo-javascript"]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir