TypeScript: ejemplos de operadores bit a bit
Suponga la variable A = 2 y B = 3
Operador | Descripción | Ejemplo |
---|---|---|
& (Bit a bit AND) | Realiza una operación booleana AND en cada bit de sus argumentos enteros. | (A y B) es 2 |
| (BitWise OR) | Realiza una operación booleana OR en cada bit de sus argumentos enteros. | (A | B) es 3 |
^ (XOR bit a bit) | Realiza una operación OR exclusiva booleana en cada bit de sus argumentos enteros. OR exclusivo significa que el operando uno es verdadero o el operando dos es verdadero, pero no ambos. | (A ^ B) es 1 |
~ (No bit a bit) | Es un operador unario y opera invirtiendo todos los bits del operando. | (~ B) es -4 |
<< (Mayús a la izquierda) | Mueve todos los bits de su primer operando a la izquierda el número de lugares especificado en el segundo operando. Los nuevos bits se llenan de ceros. Cambiar un valor a la izquierda en una posición equivale a multiplicarlo por 2, cambiar dos posiciones equivale a multiplicar por 4, y así sucesivamente. | (A << 1) es 4 |
>> (Mayús a la derecha) | Operador de cambio a la derecha binario. El valor del operando izquierdo se mueve hacia la derecha el número de bits especificado por el operando derecho. | (A >> 1) es 1 |
>>> (Desplazamiento a la derecha con cero) | Este operador es como el operador >>, excepto que los bits desplazados hacia la izquierda son siempre cero. | (A >>> 1) es 1 |
Ejemplo
var a:number = 2; // Bit presentation 10
var b:number = 3; // Bit presentation 11
var result;
result = (a & b);
console.log("(a & b) => ",result)
result = (a | b);
console.log("(a | b) => ",result)
result = (a ^ b);
console.log("(a ^ b) => ",result);
result = (~b);
console.log("(~b) => ",result);
result = (a << b);
console.log("(a << b) => ",result);
result = (a >> b);
console.log("(a >> b) => ",result);
Al compilar, generará el siguiente código JavaScript:
//Generated by typescript 1.8.10
var a = 2; // Bit presentation 10
var b = 3; // Bit presentation 11
var result;
result = (a & b);
console.log("(a & b) => ", result);
result = (a | b);
console.log("(a | b) => ", result);
result = (a ^ b);
console.log("(a ^ b) => ", result);
result = (~b);
console.log("(~b) => ", result);
result = (a << b);
console.log("(a << b) => ", result);
result = (a >> b);
console.log("(a >> b) => ", result);
La salida del programa anterior se da a continuación:
(a & b) => 2
(a | b) => 3
(a ^ b) => 1
(~b) => -4
(a << b) => 16
(a >> b) => 0