Bitwise AND
Bitwise E é verdadeiro somente se ambos os bocados são ajustados. O seguinte exemplo mostra o resultado de a bitwise E nos números 23 e 12.
10111 (23)
01100 (12) AND
____________________
00100 (result = 4) |
Você pode usar um valor da máscara verificar se determinados bocados forem ajustados. Se nós quiséssemos verificar se os bocados 1 e 3 estivessem ajustados, nós poderíamos mascarar o número com 10 (o valor se bocados 1 e 3) e testar o resultado de encontro à máscara.
#include <stdio.h>
int main()
{
int num, mask = 10;
printf("Enter a number: ");
scanf("%d", &num);
if ((num & mask) == mask)
puts("Bits 1 and 3 are set");
else
puts("Bits 1 and 3 are not set");
return 0;
}
Bitwise OR
Bitwise OU é verdadeiro se um ou outro bocados forem ajustados. As seguintes mostras o resultado de a bitwise OU nos números 23 e 12.
10111 (23)
01100 (12) OR
______________________
11111 (result = 31) |
Você pode usar uma máscara assegurar um bocado ou os bocados foram ajustados. O seguinte exemplo assegura o bocado 2 é ajustado.
#include <stdio.h>
int main()
{
int num, mask = 4;
printf("Enter a number: ");
scanf("%d", &num);
num |= mask;
printf("After ensuring bit 2 is set: %d\n", num);
return 0;
}
|