A continuación se muestra el ejemplo de los operadores bit a bit de JavaScript.
Ejemplo:
<script> var a = 4; var b = 1; document.write("A & B = " + (a & b) + '<br>'); document.write("A | B = " + (a | b) + '<br>'); document.write("~A = " + (~a) + '<br>'); </script>
Producción:
A & B = 0 A | B = 5 ~A = -5
Al igual que C, C++, Java, Python y varios otros lenguajes, JavaScript también admite operaciones bit a bit. En JavaScript, un número se almacena como un número de coma flotante de 64 bits, pero la operación bit a bit se realiza en un número binario de 32 bits, es decir, para realizar una operación de bits, JavaScript convierte el número en un número binario de 32 bits ( firmado) y realice la operación y vuelva a convertir el resultado a un número de 64 bits.
A continuación se muestran algunos operadores lógicos bit a bit que se utilizan en JavaScript.
A | B | SALIDA (A y B) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
A | B | SALIDA (A | B) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
A | B | SALIDA (A ^ B) |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
A | SALIDA (~A) |
---|---|
0 | 1 |
1 | 0 |
A continuación se muestran algunos operadores de desplazamiento bit a bit que se utilizan en JavaScript.
- Desplazamiento a la izquierda (<<): Es un operador binario, es decir, acepta dos operandos. El primer operador especifica el número y el segundo operador especifica el número de bits a desplazar. Cada bit se desplaza hacia la izquierda y se agregan 0 bits desde la derecha. Los bits sobrantes de la izquierda se descartan.
A 6 ( 000000000000000000000000000000110 ) B 1 ( 000000000000000000000000000000001 ) SALIDA ( A << B ) 12 ( 000000000000000000000000000001100 ) - Sign Propagating Right Shift (>): Es un operador binario, es decir, acepta dos operandos. El primer operando especifica el número y el segundo operando especifica el número de bits a desplazar. Cada bit se desplaza hacia la derecha, los bits desbordados se descartan. Esta es la propagación de signos, ya que los bits que se agregan desde la izquierda dependen del signo del número (es decir, 0 si es positivo y 1 si es negativo)
A 6 ( 000000000000000000000000000000110 ) B 1 ( 000000000000000000000000000000001 ) SALIDA (A >> B) 3 ( 000000000000000000000000000000011 ) - Relleno cero Desplazamiento a la derecha (>>): Es un operador binario, es decir, acepta dos operandos. El primer operando especifica el número y el segundo operando especifica el número de bits a desplazar. Cada bit se desplaza hacia la derecha, los bits desbordados se descartan. El bit 0 se agrega desde la izquierda, por lo que su cero completa el desplazamiento a la derecha.
A 6 ( 000000000000000000000000000000110 ) B 1 ( 000000000000000000000000000000001 ) SALIDA (A >>> B) 3 ( 000000000000000000000000000000011 ) A continuación se muestra la implementación de los operadores descritos anteriormente.
<script>
var
a = 6;
var
b = 1;
// AND Operation
document.write(
"A & B = "
+ (a & b) +
'<br>'
);
// OR operation
document.write(
"A | B = "
+ (a | b) +
'<br>'
);
// NOT operation
document.write(
"~A = "
+ (~a) +
'<br>'
);
// Sign Propagating Right Shift
document.write(
"A >> B = "
+ (a >> b) +
'<br>'
);
// Zero Fill Right Shift
document.write(
"A >>> B = "
+ (a >>> b) +
'<br>'
);
// Left Shift
document.write(
"A << B = "
+ (a << b) +
'<br>'
);
</script>
Producción:
A & B = 0 A | B = 7 ~A = -7 A >> B = 3 A >>> B = 3 A << B = 12
Navegadores compatibles:
- Google Chrome
- explorador de Internet
- Firefox
- safari de manzana
- Ópera