BITS & Byte magic manipulation (2 / 7 steg)
Steg 2: Bitvis och - "&"
Skiljer sig från inte operatören AND-operatorn "&" behöver 2 byte att arbeta med, som inte operatören bara vänder alla bitar i en byte, operatorn och tar en byte och OCHS det med ett annat byte.
Först tar vi en titt på en sanning bordlägger för och:
1 & 1 = 1
0 & 1 = 0
1 & 0 = 0
0 & 0 = 0
Så, vad detta säger oss är att för oss att få en ' 1 'ut båda bitar i samma plats i byte måste vara "1", låt oss prova på en byte:
0101 0101 & 0000 1111 = 0000 0101
OK, det var ganska lätt, men vad kan vi använda detta för?
Bra om du har någonsin målat innan du förmodligen använda maskeringstejp för att skydda de platser som du inte vill måla, funktionen och är bra att maskera bort bitar att vi är inte intresserad som om vi har en knapp ansluten på en port av våra Arduino när vi läser porten, får vi hela hamnen Byte, men eftersom vi är endast intresserade av den en bit vi kan maskera det ut av AND'ing det med en mask. Här är ett exempel.
Vår hamn byte = 01101011
och vi vill bara veta om de 4' th lite (stycke 3) är "1" eller "0" så vi gör så här:
Knappen = Port_byte & 00001000
Nu knappen kommer vara sant om 4' th lite är hög och falsk om den är låg.
En annan användning är att ställa in lite till '0' genom avskärmning med en '0' så här:
Port = Port & 1111 0111
Nu om man tittar på tabellen sanningen kommer du att se att båda byte måste ha en "1" för att få en '1' får ut så när vi till vår maskerade ' 0 'den biten anges till ' 0'.