Κάνε απλά ένα bitwise AND ( & ) μεταξύ της τιμής πο σου έρχεται και του bit που σε ενδιαφέρει. Το αποτέλεσμα θα έχει 1 σε κάθε bit όπου τόσο το flag όσο και το incoming byte έχουν 1. Έτσι, π.χ. το 10001000 & 00001000 θα επιστρέψει 00001000. Αν θέλεις να συγκρίνεις πολλά flags ταυτόχρονα, μάζεψε τα πρώτα με ένα bitwise OR ( |) και μετά κάνε το AND με το incoming byte. Αν το αποτέλεσμα είναι ίδιο με το flag, σημαίνει ότι το incoming byte είχε 1 σε όλα τα σημεία όπου τα flags ήταν 1.
Για περισσότερα τέτοια κόλπα, η Ψηφιακή Λογική του 1ου ή 2ου έτους (ανάλογα με τη σχολή) καλύπτει πολύ περισσότερα.
Παράδειγμα:
class Program
{
static void Main(string[] args)
{
byte inByte = 0x15; // 00010101
byte flagByte = 0x10 | 0x01; // 0001000 | 00000001
int result = inByte & flagByte;
Console.WriteLine("{0:X}",result); // 00010001
}
}
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos