Stap 2: Bitwise en - '&'
Anders dan de operator NOT de AND-operator '&' moet 2 bytes te werken, als de operator NOT alleen worden alle bits in één byte gespiegeld, de AND-operator neemt één byte en en van het met een andere byte.
Eerst zullen we kijken naar een waarheidstabel voor en:
1 & 1 = 1 0 & 1 = 0 1 & 0 = 0 0 & 0 = 0
Dus, is wat dit vertelt ons dat voor ons om een ' 1 'out zowel van de bits op dezelfde plaats in de Bytes moeten worden van ' 1', laten we het op een byte proberen:
0101 0101 & 0000 1111 = 0000 0101
OK, dat was gemakkelijk genoeg, maar wat kunnen we dit voor gebruiken?
Goed als u hebben ooit geschilderd voordat u waarschijnlijk afplakband gebruikte ter bescherming van de plaatsen die u niet wilt dat verf, de functie en is geweldig om te maskeren weg bits dat we niet geïnteresseerd in. zijn als als er een knop aangesloten op een poort van onze Arduino wanneer we de poort lezen, we de hele haven Byte krijgen, maar zoals we alleen geïnteresseerd in het beet zijn we het uit door AND'ing kan maskeren met een masker. Hier is een voorbeeld.
Onze haven byte = 01101011
en we willen alleen weten als de 4' th bit (bit 3) is '1' of '0', dus doen we dit graag:
Button = Port_byte & 00001000
Nu knop true als de 4' th bit is hoog, en heeft de waarde false als het laag is.
Een ander gebruik is een beetje instellen op '0' door maskeren met een '0' als volgt:
Port = Port & 1111 0111
Nu als je kijkt naar de waarheidstabel die u zien zult dat beide bytes hebben een '1 moeten' om een '1' krijgen uit dus wanneer we met onze gemaskerde ' 0' dat bit ingesteld op ' 0'.