Guia de rastreamento dinâmico Solaris

Operadores bit a bit

D fornece os seguintes operadores binários para manipular bits individuais dentro de operandos inteiros. Todos esses operadores possuem o mesmo significado em ANSI-C.

Tabela 2–9 Operadores bit a bit de D

&

AND bit a bit 

|

OR bit a bit 

^

XOR bit a bit 

<<

move o operando esquerdo para a esquerda pelo número de bits especificado pelo operando direito 

>>

move o operando esquerdo para a direita pelo número de bits especificado pelo operando direito 

O operador binário & é usado para limpar os bits de um operando inteiro. O operador binário | é usado para definir os bits em um operando inteiro. O operador binário ^ retorna um em cada posição de bit onde exatamente um dos bits de operando correspondente está definido.

Os operadores de deslocamento são usados para mover os bits para a esquerda ou para a direita em um determinado operando inteiro. O deslocamento para a esquerda preenche com zeros as posições de bit vazias no lado direito do resultado. O deslocamento para a direita usando um operando inteiro não assinado preenche com zeros as posições de bit vazias no lado esquerdo do resultado. O deslocamento para a direita usando um operando inteiro assinado preenche o lado esquerdo com o valor do bit de sinal, também conhecido como uma operação de deslocamento aritmético.

Mover um valor inteiro por um número negativo de bits ou por um número de bits maior que o número de bits no próprio operando esquerdo produz um resultado indefinido. O compilador de D produzirá uma mensagem de erro, caso detecte essa condição quando você compilar seu programa em D.

Além dos operadores lógicos binários, o operador unário ~ pode ser usado para realizar uma negação bit a bit de um único operando: ele converte cada bit zero no operando em um bit um, e cada bit um no operando em um bit zero.