Bitwise AND
ΚΑΙ είναι αληθινός μόνο εάν και τα δύο κομμάτια τίθενται. Το ακόλουθο παράδειγμα παρουσιάζει ότι το αποτέλεσμα του α ΚΑΙ στους αριθμούς 23 και 12.
10111 (23)
01100 (12) AND
____________________
00100 (result = 4) |
Μπορείτε να χρησιμοποιήσετε μια αξία μασκών που ελέγχει εάν ορισμένα κομμάτια έχουν τεθεί. Εάν θελήσαμε να ελέγξουμε εάν τα κομμάτια 1 και 3 τέθηκαν, θα μπορούσαμε να καλύψουμε τον αριθμό με 10 (η αξία εάν κομμάτια 1 και 3) και εξετάζει το αποτέλεσμα ενάντια στη μάσκα.
#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
Η είναι αληθινός εάν καθένα κομμάτια τίθενται. Οι ακόλουθες επιδείξεις το αποτέλεσμα του α Ή στους αριθμούς 23 και 12.
10111 (23)
01100 (12) OR
______________________
11111 (result = 31) |
Μπορείτε να χρησιμοποιήσετε μια μάσκα που εξασφαλίζει λίγο ή τα κομμάτια έχουν τεθεί. Το ακόλουθο παράδειγμα εξασφαλίζει ότι το κομμάτι 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;
}
|