operadores de desplazamiento de JavaScript

operación de cambio se lleva a cabo en un desplazamiento a baja binaria regular. operación de cambio puede ser diseñado muchos efectos maravillosos, ampliamente utilizados en la programación imagen gráfica.

"<<" operador

"<<" operador realiza dejaron operación de desplazamiento. En la operación de desplazamiento durante el bit de signo sigue siendo el mismo. Si el derecho posición vacante, se llena automáticamente con 0; el valor excede de 32 bits, se descarta automáticamente.
5 digital móvil dos a la izquierda, el valor de retorno es de 20.

console.log(5 << 2); //返回值20

">>" operador

">>" operador lleva a cabo una operación de desplazamiento a la derecha firmado. En contraste con la operación de desplazamiento a la izquierda aritmética, es todos los bits significativos general derecho de números de 32 bits, la ranura de relleno utilizando el valor del bit de signo. Durante el movimiento más allá de los valores será descartado.

El valor 1000 a la derecha 8, el valor de retorno es 3.

console.log(1000 >> 8); //返回值3

Los valores a la derecha -1000 8, el valor de retorno es -4.

console.log(-1000 >> 8); //返回值 -4

">>>" operador

">>>" lleva a cabo una operación de operador desplazamiento a la derecha cinco símbolos. Es sin signo de 32 bits número entero todos los dígitos a la derecha integralmente. Para la operación de desplazamiento a la derecha sin signo o un número positivo, firmado y desplazamiento a la derecha sin signo resultados de operación adecuados son los mismos.

Los siguientes dos líneas de expresión del valor de retorno son los mismos.

console.log(1000 >> 8);  //返回值3
console.log(1000 >> 8);  //返回值3

Para números negativos, el desplazamiento sin signo derecha usando 0 a llenar todo el espacio, mientras que un número negativo sería tratado como un positivo, los resultados serán muy grandes, por lo tanto, tenga cuidado cuando se utiliza el operador de desplazamiento a la derecha sin signo, para evitar accidentes .

console.log(-1000 >> 8);  //返回值 -4
console.log(-1000 >>> 8);  //返回值 16777212

Tomado de: http://c.biancheng.net/view/5471.html

Supongo que te gusta

Origin www.cnblogs.com/hukuangjie/p/12651575.html
Recomendado
Clasificación