almhp.com

Operadores em linguagem C

7. O que são Bitwise Operatores?

Bit a bit Operatoros são usados ​​para manipular dados em nível de bit, também chamado de programação em nível de bit. Bitwise opera em um ou mais padrões de bits ou números binários no nível de seus bits individuais. Eles são usados ​​em cálculos numéricos para tornar o processo de cálculo mais rápido.

Bit a bit Operatores em C: AND, OR, XOR, Shift & Complemento

A seguir está a lista de operadores bit a bit fornecidos pela linguagem de programação 'C':

Operator Significado
& Operador AND(e) bit a bit
| Operador OR(ou) bit a bit
^ Operador XOR(ou exclusivo) bit a bit
~ Complemento de Binário Operator é um operador unário
<< Operador de turno à esquerda
>> Operador de deslocamento para a direita

Os operadores bit a bit não podem ser aplicados diretamente a tipos de dados primitivos, como float, double, etc. Lembre-se sempre de que os operadores bit a bit são usados ​​​​principalmente com o tipo de dados inteiro devido à sua compatibilidade.

Os operadores lógicos bit a bit trabalham nos dados bit a bit, começando pelo bit menos significativo, ou seja, o bit LSB que é o bit mais à direita, trabalhando em direção ao MSB (Most Significant Bit) que é o bit mais à esquerda.

O resultado do cálculo dos operadores lógicos bit a bit é mostrado na tabela abaixo.

x y x e y x | y x^y
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

7,1 - AND bit a bit

Este é um dos operadores lógicos bit a bit mais comumente usados. Ele é representado por um único sinal de E comercial (&). Duas expressões inteiras são escritas em cada lado do operador (&).

O resultado da operação AND bit a bit é 1 se ambos os bits tiverem o valor 1; caso contrário, o resultado será sempre 0.

Vamos considerar que temos 2 variáveis ​​op1 e op2 com valores como segue:

Op1 = 0000 1101
Op2 = 0001 1001

O resultado da operação AND nas variáveis ​​op1 e op2 será

Result = 0000 1001

Como podemos ver, duas variáveis ​​são comparadas pouco a pouco. Sempre que o valor de um bit em uma das variáveis ​​for 1, o resultado será 1 ou então 0.

7.2 - OR bit a bit

É representado por um único sinal de barra vertical (|). Duas expressões inteiras são escritas em cada lado do operador (|).

O resultado da operação OR bit a bit é 1 se pelo menos uma das expressões tiver o valor 1; caso contrário, o resultado será sempre 0.

Vamos considerar que temos 2 variáveis ​​op1 e op2 com valores como segue:

Op1 = 0000 1101
Op2 = 0001 1001

O resultado da operação OR nas variáveis ​​op1 e op2 será

Result = 0001 1101

Como podemos ver, duas variáveis ​​são comparadas pouco a pouco. Sempre que o valor de um bit em ambas as variáveis ​​for 1, o resultado será 1 ou então 0.

7.3 - OU Exclusivo bit a bit

É representado por um símbolo (^). Duas expressões inteiras são escritas em cada lado do operador (^).

O resultado da operação OR exclusivo bit a bit é 1 se apenas uma das expressões tiver o valor 1; caso contrário, o resultado será sempre 0.

Vamos considerar que temos 2 variáveis ​​op1 e op2 com valores como segue:

Op1 = 0000 1101
Op2 = 0001 1001

O resultado da operação XOR nas variáveis ​​op1 e op2 será

Result = 0001 0100

Como podemos ver, duas variáveis ​​são comparadas pouco a pouco. Sempre que apenas uma variável mantém o valor 1, o resultado é 0, caso contrário, 0 será o resultado.

Listagem 01 - Operadores Lógicos bit a bit.

  • 1 #include <stdio.h>
  • 2 int main()
  • 3 {
  • 4     int a = 20;    /* 20 = 010100 */
  • 5     int b = 21;    /* 21 = 010101 */
  • 6     int c = 0;
  • 7
  • 8     c = a & b;    /* 20 = 010100 */
  • 9     printf("AND - Valor de c é %d\n", c );
  • 10
  • 11     c = a | b;    /* 21 = 010101 */
  • 12     printf("OR - Valor de c é %d\n", c );
  • 13
  • 14     c = a ^ b;    /* 1 = 0001 */
  • 15     printf("Exclusive-OR - Valor de c é %d\n", c );
  • 16
  • 17 getch();
  • 18 }

  • Saída:
  • li>
  • AND - Valor de c é 20
  • OR - Valor de c é 21
  • Exclusive-OR - Valor de c é 1


Fale conosco
Antônio Almeida
tonical2k11@gmail.com