Bitwise AND
The bitwise AND es verdad solamente si se fijan ambos pedacitos. El ejemplo siguiente demuestra el resultado de a bitwise Y en los números 23 y 12.
10111 (23)
01100 (12) AND
____________________
00100 (result = 4) |
Puedes utilizar un valor de la máscara para comprobar si se han fijado ciertos pedacitos. Si deseamos comprobar si los pedacitos 1 y 3 fueran fijados, podríamos enmascarar el número con 10 (el valor si los pedacitos 1 y 3) y probar el resultado contra la 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 O es verdad si se fijan cualquier pedacitos. Las demostraciones siguientes el resultado de a bitwise O en los números 23 y 12.
10111 (23)
01100 (12) OR
______________________
11111 (result = 31) |
Puedes utilizar una máscara para asegurar un pedacito o se han fijado los pedacitos. Se fija el ejemplo siguiente asegura el pedacito 2.
#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;
}
|