JS - operaciones de bits

Visión de conjunto

inserte la descripción de la imagen aquí
Ejemplo de código:

Operación de bits, el valor se convertirá en binario para el cálculo, por ejemplo:
5 y 1 = "101 y 1 = "001

console.log(5 & 1)
//1

con &, o |

Es 1 solo si es igual a 1, y los demás son 0.
O el mismo 0 es 0, y los demás son 1.

console.log(5 & 1)
//101 001
//001
//1

console.log(5 | 2)
//101 010
//111
//7

No

1 se convierte en 0, 0 se convierte en 1.

console.log(~1)
//-2

¿Por qué es la negación de 1 -2?

El bit de signo 0 cambia a 1, y el positivo y el negativo se invierten, lo cual es fácil de entender.
El valor se invierte bit a bit, debe ser 11111111111110.

Los valores se almacenan en complemento.
Un número positivo es él mismo.
Los números negativos se niegan bit a bit más uno.

1111111110 es un número negativo,
invierte el bit y suma uno, que es 00000010, que
es 2.

XOR

1 si son diferentes, 0 si son iguales.

console.log(1 ^ 3)
//01 11
//10
//2

Desplazamiento a la izquierda con cero relleno <<

Mueve todas las posiciones a la izquierda sin cambiar el signo.

La posición vacía es 0.
Deseche la parte extruida.

let a = 100
let b = a << 1
console.log(a, b)
console.log(a.toString(2))
console.log(b.toString(2))

Efecto:

inserte la descripción de la imagen aquí

let a = -100
let b = a << 1
console.log(a, b)
console.log(a.toString(2))
console.log(b.toString(2))

Efecto:

inserte la descripción de la imagen aquí
Los números positivos y negativos tienen el mismo efecto, todos se multiplican por dos (a menos que sean demasiado grandes y se pierdan).

símbolo llenar a la derecha

Mover todas las posiciones a la derecha.

La posición vacía se llena con el bit de signo, los números positivos se llenan con 0 y los números negativos se llenan con 1.
Deseche la parte extruida.

let a = 100
let b = a >> 1
console.log(a, b)
console.log(a.toString(2))
console.log(b.toString(2))

Efecto:

inserte la descripción de la imagen aquí

let a = -100
let b = a >> 1
console.log(a, b)
console.log(a.toString(2))
console.log(b.toString(2))

Efecto:

inserte la descripción de la imagen aquí
Los números positivos y negativos tienen el mismo efecto, se dividen por dos.

desplazamiento a la derecha con relleno cero

Mueva todas las posiciones a la derecha y los símbolos se moverán con ellas.

La posición vacía es 0.
Deseche la parte extruida.

Sin explicación.

Supongo que te gusta

Origin blog.csdn.net/qq_37284843/article/details/123822653
Recomendado
Clasificación