תבחיר
- קוד: בחר הכל
x &= y; // equivalent to x = x & y;
פרמטרים בתחביר:
x - משתנה מסוג
char
, int
או long
y - משתנה מסוג
char
, int
או long
או קבוע עם מספר שלםדוגמה
- קוד: בחר הכל
0 0 1 1 operand1
0 1 0 1 operand2
----------
0 0 0 1 (operand1 & operand2) - returned result
סיביות שעוברות פעולת AND עם 0 מתאפסים ל-0, כך שאם
myByte
הוא משתנה מסוג byte
, פעולה הבאה תאפס את כולו:- קוד: בחר הכל
myByte & B00000000 = 0;
סיביות שעוברות פעולת AND עם 1 לא משתנות, כך שפעולה הבאה לא תשנה את ערך של המשתנה:
- קוד: בחר הכל
myByte & B11111111 = myByte;
שימו לב:
בגלל שאנחנו מתמודדים עם סיביות בפקודה שפועלת על סיביות, יהיה יותר נוח לייצג את המספרים הקבועים בצורה בינרית (binary). למספרים יהיה אותו ערך כמו בצורות ייצוג אחרות, אבל הם יהיו קצת יותר קשים להבנה. למשל ה-
B00000000
שבדוגמה נכתב לטובת הבהירות של כמות הביטים במספר, אבל ערך 0 תמיד ישאר 0 בכל שיטות הייצוג.כתוצאה מכך, כדי לנקות (להפוך ל-0) סיביות 0 ו-1 של משתנה, כאשר כל שאר הסיביות ישארו ללא שינוי, השתמשו בפעולה
=&
עם קבוע B11111100
:- קוד: בחר הכל
1 0 1 0 1 0 1 0 variable
1 1 1 1 1 1 0 0 mask
----------------------
1 0 1 0 1 0 0 0
variable unchanged
bits cleared
כאן תוכלו לראות את אותה פעולה כאשר ערכי הסיביות שונו ל-x בדוגמה:
- קוד: בחר הכל
x x x x x x x x variable
1 1 1 1 1 1 0 0 mask
----------------------
x x x x x x 0 0
variable unchanged
bits cleared
כך שאם ערך המשתנה
myByte
היה B10101010
, אחרי פעולת =&
עם קבוע B1111100
נקבל B10101000
.ראו גם:
=| (פעולת bitwise OR על...)& (bitwise AND)
| (bitwise OR)
פירוט שפת תכנות לסביבת Arduino
עמוד זה הוא תרגום של compound bitwise AND (&=) לפי רישיון Creative Commons Attribution-ShareAlike 3.0.