عملگر و بیتی ترکیبی در آردوینو =& است و معمولاً به همراه یک متغیر و یک ثابت استفاده میشود تا بیتهایی خاص را به وضعیت پایین (LOW) یا همان 0 ببرد. در راهنماهای برنامهنویسی به این عمل، “ریست” یا “پاک کردن” بیت گویند.
سینتکس (نحو):
1 2 3 | x &= y; // معادل عبارت : // x = x & y; |
پارامترها:
X: متغیری از نوع char , int و یا long
Y: ثابتی از نوع int یا متغیری از نوع char , int و یا long
مثال:
ابتدا مروری بر عملگر و بیتی (&) میکنیم:
1 2 3 4 5 | 0 0 1 1 operand1 0 1 0 1 operand2 ---------- 0 0 0 1 (operand1 & operand2) - returned result // نتیجهی عملگر و بیتی |
بیتهایی که با عملگر “و بیتی” ، با 0 AND شدهاند، به صفر تبدیل و درواقع پاک شدهاند؛ پس اگر myByte یک متغیر از نوع byte باشد:
1 | myByte & B00000000 = 0; |
بیتهایی که با عملگر “و بیتی” ، با 1 AND شدهاند، تغییری نکردهاند؛ پس:
1 | myByte & B11111111 = myByte; |
نکته: چون در این عملگر ما با بیتها سروکار داریم، مناسب است که از قالب باینری با ثابتها استفاده کنیم. درست است که اعداد در هر نمایش، مقداری یکسان دارند اما درک آنها به این سادگی نیست. همچنین برای وضوح بیشتر “B00000000” نمایش داده شده است اما صفر در هر قالب عددی، صفر است.
درنتیجه برای پاک کردن (صفر کردن) بیتهای 0 و 1 یک متغیر درحالیکه بقیه بیتها تغییری نکنند، از عملگر و بیتی ترکیبی (=&) با ثابت B11111100 استفاده کنید:
1 2 3 4 5 6 7 | 1 0 1 0 1 0 1 0 متغیر 1 1 1 1 1 1 0 0 ماسک ---------------------- 1 0 1 0 1 0 0 0 این بیتها عوض نشدهاند. این دو بیت پاک شدهاند. |
همان مثال بالا، اما جای بیتهای متغیر، نماد X را قرار دادهایم:
1 2 3 4 5 6 7 | x x x x x x x x متغیر 1 1 1 1 1 1 0 0 ماسک ---------------------- x x x x x x 0 0 بقیه متغیر تغییر نکردهاست. این دو بیت پاک شدهاند. |
پس اگر:
1 2 3 | myByte = B10101010; myByte &= B11111100 == B10101000; |