bitToggle – הסבר ופרטים


- עמוד זה הוא חלק מהמדריך לפונקציות ארדואינו -

המאקרו bitToggle(value, bit) מחליף את הערך של הביט, שנמצא באינדקס bit במשתנה value. אם ערכו של הביט לפני הפעולה היה 0 הוא יהפוך ל-1, ואם ערכו לפני הפעולה היה 1 הוא יהפוך ל-0.

פרמטרים

value הוא המשתנה, שרוצים להחליף ערך של ביט מסוים בו. כיוון ש-bitToggle הוא מאקרו ולא פונקציה, אין ל-value טיפוס משתנה קבוע – אך הקומפיילר ירשה לשלוח אליו רק משתנים מטיפוסי מספרים שלמים (integer).

שימו לב: בקוד של ספריות הליבה של ארדואינו כתוב value ולכן השתמשתי באותו שם כאן, אך בפועל אפשר לשלוח רק משתנים, לא ערכים קבועים.

bit מציין את האינדקס של הביט הספציפי שרוצים להחליף את ערכו – האינדקסים מתחילים מ-0, שהוא הביט הימני ביותר במספר.

ערך חוזר

הערך המעודכן של value. מכיוון ש-bitToggle הוא מאקרו ולא פונקציה, טיפוס המשתנה של הערך החוזר יהיה זהה לטיפוס של value.

דוגמאות

int8_t x = 7;
// x is 7 (binary 00000111)
bitToggle(x, 1);
// x is now 5 (binary 00000101)
bitToggle(x, 1);
// x is again 7 (binary 00000101)

הערות

  • כיוון ש-bitToggle הוא מאקרו ולא פונקציה, אין לשלוח חישובים או קריאות לפונקציות כפרמטרים – הדבר עלול לגרום לתוצאות שגויות ובמקרים מסוימים גם לפגיעה בתפקוד הקוד כולו.
  • חשוב לזכור שבטיפוסי משתנים של מספרים שלמים בעלי סימן (signed), הביט השמאלי ביותר מציין את הסימן (ערך 0 בביט זה פירושו מספר חיובי ו-1 פירושו מספר שלילי).
  • בגלל צורת הייצוג של מספרים במיקרו-בקר, במקרה של מספר שלילי, גם שאר הביטים יהיו שונים מאלה של מספר חיובי בעל ערך מוחלט זהה.
  • למאקרו bitToggle אין כרגע תיעוד רשמי באנגלית.

קישורים רלוונטיים

בלוג אישי בנושאי מייקינג, תכנות, מיקרו-בקרים ואלקטרוניקה