Operadores bit a bit de JavaScript

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.

  • AND bit a bit ( & ) : Es un operador binario, es decir, acepta dos operandos. AND (&) bit a bit devuelve 1 si ambos bits están establecidos (es decir, 1) y 0 en cualquier otro caso.
    A B SALIDA (A y B)
    0 0 0
    0 1 0
    1 0 0
    1 1 1
  • Bit-Wise OR ( | ) : Es un operador binario, es decir, acepta dos operandos. O bit a bit ( | ) devuelve 1 si alguno de los operandos está establecido (es decir, 1) y 0 en cualquier otro caso.
    A B SALIDA (A | B)
    0 0 0
    0 1 1
    1 0 1
    1 1 1
  • Bit-Wise XOR (^): es un operador binario, es decir, acepta dos operandos. Bit-wise XOR ( ^ ) devuelve 1 si ambos operandos son diferentes y 0 en cualquier otro caso.
    A B SALIDA (A ^ B)
    0 0 0
    0 1 1
    1 0 1
    1 1 0
  • Bit-Wise NOT (~): Es un operador unario, es decir, acepta operandos individuales. Bit-wise NOT (~) cambia los bits, es decir, 0 se convierte en 1 y 1 se convierte en 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.

    1. 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 )
    2. 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 )
    3. 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

  • Publicación traducida automáticamente

    Artículo escrito por ShivamKD y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

    Deja una respuesta

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