Operadores Bitwise

OPERADORES BITWISE

Operadores bitwise são usados quando precisamos fazer operações a nível de bits. Funcionam de forma semelhante aos operadores lógicos, exceto por trabalharem com representação binária de dados. A combinação de ponteiros, juntamente com os operadores a nível de bit fazem do C uma linguagem de programação completamente usável para aplicações de baixo nível, substituindo o código assembly. Para se ter uma idéia, apenas 10% (aproximadamente) do código do linux é feito em código assembly, o resto é C.

Os seguintes operadores são disponíveis:

  • val1 & val2 : operador AND, compara 2 bits, se os dois tiverem o valor 1, retorna 1, senão retorna 0.
    • Ex: val1 & val2
      • 0011 : val1
      • 1011 : val2
      • 0011: Res
  • val1 | val2 : operador OR, compara 2 bits, caso um deles possua o valor 1, retorna 1, caso contrário 0.
    • Ex: val1 | val2
      • 0011 : val1
      • 1011 : val2
      • 1011 : Res
  • val1 ^ val2 : operador XOR, compara 2 bits, caso os dois tiverem o mesmo valor, retorna 0, caso contrário retorna 1.
    • Ex: val1 ^val2
      • 0011 : val1
      • 1011 : val2
      • 1000 : Res
  • ~val1 : operador COMPLEMENT, inverte todos os bits. Operador unário, isto é, opera sobre apenas um operador. Pelos bits 1 substitui-se por 0 e vice versa.
    • Ex: ~0011 : 1100
  • val1 >> val2 : operador DESLOCAMENTO À DIREITA, move os bits à direita, descartando os valores mais à direita, e acrescentando 0, à esquerda.
    • Ex: val1 >> val2
      • 0101 : val1
      • 2 : val2
      • 0001 : Res
  • val1 << val2 : operador DESLOCAMENTO À ESQUERDA, move os bits à esquerda, descartando os valores mais à esquerda, e acrescentando 0, à direita.
    • Ex: val1 << val2
      • 0101 : val1
      • 2 : val2
      • 0100 : Res

Obs: Ambos os operadores relacionados com bitwise devem ser valores inteiros.

Não confuda “&” (“and” bitwise) com “&&” (“and” lógico). Bem como “|” com “||”.

Operadores bitwise são utilizados para modificar bits individualmente sobre um operando. Um único byte de computador armazena 8 bits, os quais podem significar true/false de 8 flags, onde cada bit pode ser usado como uma variável booleana. Então, se em um programa for necessário armazenar várias flags, estas podem ser setadas em um único byte, onde cada bit representa o status de true/false.

Anúncios
Explore posts in the same categories: Dicas, Tutoriais

4 Comentários em “Operadores Bitwise”


  1. Pesquisei isto na internet, pois não havia compreendido muito bem pelo livro, nem precisei re-ler o texto, melhor explicado que no livro parabens

  2. Josafá Says:

    Obrigado.

  3. renatinhosex Says:

    parabens. muito bem explicado. faltou so um programinha em C mostrando. :)


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s


%d blogueiros gostam disto: