Es handelt sich um eine bitweise Verknüpfung:
Code:
001 = lesen
010 = schreiben
--------------- or
011 = lesen und schreiben
Bei
and würde rauskommen: 000 und was soll das bedeuten? Mit einer Bitweisen or Verknüpfung kann ich also Werte mit einander kombinieren und kann sie wieder zerlegen um zu kucken, welche Werte enthalten sind.
Code:
011 = lesen und schreiben
010 = schreiben
-------------------------- and
010 = schreiben
Ich maskiere also das Bit, was ich abfragen will mit einem Wert
den ich abfragen will und wenn genau der Wert rauskommt, weiß ich, dass er enthalten ist. Das ist der Trick an der ganzen Geschichte dabei.