Directorio de artículos
Visión de conjunto
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:
let a = -100
let b = a << 1
console.log(a, b)
console.log(a.toString(2))
console.log(b.toString(2))
Efecto:
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:
let a = -100
let b = a >> 1
console.log(a, b)
console.log(a.toString(2))
console.log(b.toString(2))
Efecto:
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.