CoffeeScript: operadores bit a bit

CoffeeScript admite los siguientes operadores bit a bit. Asumir variableA sostiene 2 y variable B sostiene 3, entonces -

No Señor Operador y descripción Ejemplo
1

& (Bitwise AND)

Realiza una operación booleana AND en cada bit de sus argumentos enteros.

(A y B) es 2.
2

| (BitWise OR)

Realiza una operación booleana OR en cada bit de sus argumentos enteros.

(A | B) es 3.
3

^ (Bitwise XOR)

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.
4

~ (Bitwise Not)

Es un operador unario y opera invirtiendo todos los bits del operando.

(~ B) es -4.
5

<< (Left Shift)

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.
6

>> (Right Shift)

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.

Ejemplo

El siguiente ejemplo demuestra el uso de operadores bit a bit en CoffeeScript. Guarde este código en un archivo con nombrebitwise_example.coffee

a = 2 # Bit presentation 10
b = 3 # Bit presentation 11

console.log "The result of (a & b) is "
result = a & b
console.log result

console.log "The result of (a | b) is "
result = a | b
console.log result

console.log "The result of (a ^ b) is "
result = a ^ b
console.log result

console.log "The result of (~b) is "
result = ~b
console.log result

console.log "The result of (a << b) is "
result = a << b
console.log result

console.log "The result of (a >> b) is "
result = a >> b
console.log result

Abre el command prompt y compile el archivo .coffee como se muestra a continuación.

c:/> coffee -c bitwise_example.coffee

Al compilar, le da el siguiente JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var a, b, result;
  a = 2;
  b = 3;

  console.log("The result of (a & b) is ");
  result = a & b;
  console.log(result);

  console.log("The result of (a | b) is ");
  result = a | b;
  console.log(result);

  console.log("The result of (a ^ b) is ");
  result = a ^ b;
  console.log(result);

  console.log("The result of (~b) is ");
  result = ~b;
  console.log(result);

  console.log("The result of (a << b) is ");
  result = a << b;
  console.log(result);

  console.log("The result of (a >> b) is ");
  result = a >> b;
  console.log(result);

}).call(this);

Ahora, abre el command prompt nuevamente y ejecute el archivo CoffeeScript como se muestra a continuación.

c:/> coffee bitwise_example.coffee

Al ejecutarse, el archivo CoffeeScript produce la siguiente salida.

The result of (a & b) is
2
The result of (a | b) is
3
The result of (a ^ b) is
1
The result of (~b) is
-4
The result of (a << b) is
16
The result of (a >> b) is
0