Los operadores bit a bit en JavaScript

JavaScript bit a bit Los operadores : En este tutorial, vamos a aprender acerca de las operaciones bit a bit en JavaScript con ejemplos .

operadores de bits de JavaScript

Una gran cantidad de veces que vienen a través de algunos operadores extraños donde estás golpeando la cabeza para entender lo que está pasando en el código. Casi todos los lenguajes de programación tienen operadores de bits . Es esencial un lenguaje class tener estos, ya que trabajan a nivel binario. Vamos a entender primero lo que operadores bit a bit son y por qué son como son for cualquier lenguaje general o marco entonces podemos sumergirse en la forma de utilizarlos en JavaScript.

En el sistema numérico, tenemos más de una manera de representar números. La mayoría del tiempo que están utilizando los números decimales que tienen una base-10, pero hay otros tipos de números tales como hexadecimal, binario, octal, etc. Bitwise interactúan operadores con los números en el nivel binario. Desde cualquier máquina sólo entiende binario (una mera combinación de los 0 y 1.), la forma en una máquina entienda lo que estamos haciendo en un programa es mediante la conversión en su idioma nacional de los 0 y 1.. Es por eso que la forma más fundamental de jugar con los números es por romper hacia abajo en el nivel binario. Al almacenar una variable o realizar operaciones aritméticas básicas, incluso, en realidad, estas operaciones se están realizando convirtiendo en primer lugar la base -10 números para números binarios. Incluso las variables almacenadas en la memoria se hace referencia a través de números y direcciones de memoria binaria son en sí mismos un valor hexadecimal. Por lo tanto la comprensión bit a bit es una gran manera de entender cómo una máquina está interpretando las cosas y nada ha hecho uso es siempre más rápido que lo que se logra a través de alguna otra operación.

operadores bit a bit nos ayuda a llevar a cabo operaciones de enmascaramiento de bits y jugar con las cifras a nivel binario. Vamos a ver en los siguientes mayoría de los operadores bit a bit en común JavaScript .

Lista de Operadores bit a bit en JavaScript

operador
Descripción

y AND bit a bit
| OR bit a bit
^ XOR bit a bit
~ Bitwise NO
& lt; & lt; Shift izquierda en modo bit
& gt; & gt; derecha en modo bit Shift

Nota:

  • JavaScript almacena los números como números de 64 bits en coma flotante, pero todas las operaciones bit a bit se llevan a cabo en 32 bits de números binarios.
  • Antes de una operación en modo bit se lleva a cabo, JavaScript números se convierte en 32 bits enteros con signo.
  • Después de que se realiza el operación en modo bit , el resultado es de nuevo convertida a 64 bits de los números de JavaScript.

Primero vamos a ver lo que entienden por llevar a cabo algunas operaciones. El AND bit a bit primeros convertidos los dos números en sus binario y luego hace la operación AND (multiplicación lógico) desde el bit final a poco.

    Let's say we have two numbers; 5 and 1.
Binary of 5: 1001
Binary of 1: 0001

Si tomamos Y de cada dígito desde el lado derecho tenemos 0001 que es 1 en notación decimal. Simplemente podemos utilizar y para obtener el mismo resultado, es decir, la AND bit a bit entre dos números.

Para puesta a punto, el código sigue las siguientes reglas,

Abra la consola de Chrome dev para probar los ejemplos de hacer clic derecho en el navegador y rarr; seleccionar inspeccionar y rarr; seleccionar consola o f12 simplemente Pree .

Bitwise Operators in JavaScript - 4

Puede llevar a cabo estas operaciones para verificar los resultados. Sólo hay que cambiar los números decimales a su equivalente binario y realizar poco a poco el funcionamiento y convertir el binario obtenido de nuevo a decimal.

El OR bit a bit hace adición lógica de dos números binarios.

Bitwise Operators in JavaScript - 5

El XOR bit a bit da 1 si los bits son diferentes y 0 en caso contrario.

Bitwise Operators in JavaScript - 6

El NOT en modo bit ~ simplemente inversos todos los bits de la representación binaria del número. Dondequiera que usted tiene un 0, podrás tener un versa 1 y el vicio.

Bitwise Operators in JavaScript - 7

Aviso, cómo NO ~ de un número nos da la negativa de ese número se incrementa en 1? Esto se puede verificar lógicamente con respecto a cómo el ordenador almacena un número negativo.

operador empuja todos los bits a la izquierda y más a la derecha se cae.

binario de 5: 0101 5 >> 1 => 0010 que es la representación binaria de 2 .

Vamos a verificar estos,

Bitwise Operators in JavaScript - 8

Lo que si se deja pasar un cierto número de veces a b? O desplazamiento a la derecha a b tiempos?

Bitwise Operators in JavaScript - 9

En general, podemos decir a & lt; & lt; b es a * (2 ^ b) . Si a = 5 , b = 2 entonces 5 * (2 ^ 2) que da 5 * 4 = 20 .

Del mismo modo, podemos decir a & gt; & gt; b es decir a / (2 ^ b) . Si a = 5, b = 2 entonces 5 / (2 ^ 2) que da 5/4 = 1 .

Bueno, ahora vamos a escribir una función simple que acepta dos números y realiza todas las operaciones bit a bit que hemos discutido hasta ahora.

function bitwiseOperations(a=2,b=3){
console.log('${a} AND ${b} : ',a&b);
console.log('${a} OR ${b} : ',a|b);
console.log('${a} XOR ${b} : ',a^b);
console.log('NOT ${a} : ',~a);
console.log('NOT ${b} : ',~b);
console.log('Left Shift ${a} : ',a<<1);
console.log('${a} left shift ${b} : ',a>>b);
console.log('${a} right shift ${b} : ',a<<b);
}

Bitwise Operators in JavaScript - 10

Echemos un vistazo a la aplicación del operador de bits. Digamos que tenemos una matriz en la que cada número se repite dos veces, excepto for un número que se produce sólo una vez. Tenemos que encontrar ese número único. No puede haber diferentes enfoques a este problema, pero un método eficaz sería la de XOR todos los elementos de la matriz. Veamos esto con un ejemplo,

Digamos que tenemos una matriz con los elementos: 1,5,6,2,5,6,3,2,3

Claramente, el número único es 1 .

Si XOR todos estos números juntos debido a los mismos bits en los números repetidos, darán 0 .

5 ^ 5 = 6 ^ 6 = 3 ^ 3 = 2 ^ 2 = 0 .

Y, cuando nos XOR 1 y 0 , conseguiremos 1 . De esta manera podemos encontrar fácilmente el número único.

vamos a implementar esta solución,

function findUnique(arr){
var ans=0;
for(let i=0; i<arr.length; i++)
ans=ans^arr[i];
return ans;
}

Bitwise Operators in JavaScript - 11


Deja un comentario

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