CoffeeScript - operadores bit a bit

CoffeeScript oferece suporte aos seguintes operadores bit a bit. Assumir variávelA detém 2 e variável B detém 3, então -

Sr. Não Operador e descrição Exemplo
1

& (Bitwise AND)

Ele executa uma operação booleana AND em cada bit de seus argumentos inteiros.

(A e B) é 2.
2

| (BitWise OR)

Ele executa uma operação booleana OR em cada bit de seus argumentos inteiros.

(A | B) é 3.
3

^ (Bitwise XOR)

Ele executa uma operação booleana OU exclusiva em cada bit de seus argumentos inteiros. OU exclusivo significa que o operando um é verdadeiro ou o operando dois é verdadeiro, mas não ambos.

(A ^ B) é 1.
4

~ (Bitwise Not)

É um operador unário e opera invertendo todos os bits do operando.

(~ B) é -4.
5

<< (Left Shift)

Ele move todos os bits em seu primeiro operando para a esquerda pelo número de casas especificado no segundo operando. Novos bits são preenchidos com zeros. Deslocar um valor para a esquerda em uma posição é equivalente a multiplicá-lo por 2, deslocar duas posições é equivalente a multiplicar por 4 e assim por diante.

(A << 1) é 4.
6

>> (Right Shift)

Operador binário de deslocamento à direita. O valor do operando esquerdo é movido para a direita pelo número de bits especificado pelo operando direito.

(A >> 1) é 1.

Exemplo

O exemplo a seguir demonstra o uso de operadores bit a bit no CoffeeScript. Salve este código em um arquivo com o nomebitwise_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

Abra o command prompt e compilar o arquivo .coffee conforme mostrado abaixo.

c:/> coffee -c bitwise_example.coffee

Na compilação, ele fornece o seguinte 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);

Agora, abra o command prompt novamente e execute o arquivo CoffeeScript conforme mostrado abaixo.

c:/> coffee bitwise_example.coffee

Na execução, o arquivo CoffeeScript produz a seguinte saída.

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