المعامل =| في أردوينو

من موسوعة حسوب
اذهب إلى: تصفح، ابحث

يُستعمَل المعامل =| المركَّب عادةً مع متغير وثابت من لضبط قيمة بت محدَّد (ضبطه إلى القيمة 1 أو HIGH). يشار إلى هذه العملية في أغلب المراجع على أنَّها عملية «ضبط» (set) للبتات.

اطلع على الشكل التالي الذي يشرح تطبيق المعامل | مع الأعداد الثنائية:
0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  1    result = operand1 | operand2

البنية العامة

x |= y;   // x = x | y;

المعاملات

x

متغيِّرٌ من النوع: محرف، أو عدد صحيح، أو عدد طويل.

y

متغيِّرٌ أو ثابتٌ من النوع: محرف، أو عدد صحيح، أو عدد طويل.

أمثلة

تبقى قيمة البتات التي تطبق العملية OR -عبر المعامل |- عليها مع أصفارٍ ثابتةٌ لا تتغير، لذا يكون المثال التالي محقق دومًا لأي نوع من المتغيرات:
myByte | B00000000 = myByte;
أمَّا قيمة البتات التي تطبق العملية OR -عبر المعامل |- عليها مع واحدات ستُضبَط إلى 1:
myByte | B11111111 = B11111111;

ملاحظات وتحذيرات

بما أنَّنا نتعامل مع بتات عند استعمال معاملات الأعداد الثنائية، فمن الملائم استعمال الصيغة الثنائية مع الثوابت التي نستخدمها. لا تتغير قيمة الأعداد عند تمثيلها بأنظمة عد مختلفة (مثل النظام الثنائي والعشري)، إلا أنَّها تصبح عصيَّة على الفهم بعض الشيء إن لم تمثَّل بالنظام العشري المألوف لدى البشر. يُكتَب أحيانًا الصفر بالشكل B00000000 للتوضيح فقط مع أنَّ الصفرَ هو صفرٌ في أي نظام عدِّ كان.

بناءً على ما سبق، لضبط البت الأول والثاني فقط (ضبط قيمتهما إلى 1) في متغيِّرٍ دون المساس بالبتات الأخرى، يمكن استعمال المعامل =| المركب مع الثابت B00000011 الذي يدعى «قناعًا»:
1  0  1  0  1  0  1  0    المتغير
0  0  0  0  0  0  1  1     القناع
----------------------
1  0  1  0  1  0  1  1     الناتج
|              |  |  |
 --------------    --
    ضُبطَت      لم تتغير
يمكن إعادة تمثيل الشكل السابق مع تبديل الرمز x مكان بتات المتغير لمعرفة البتات التي تغيرت من تلك التي لم تتغير بعد تنفيذ العملية:
x  x  x  x  x  x  x  x    المتغير
0  0  0  0  0  0  1  1     القناع
----------------------
x  x  x  x  x  x  1  1     الناتج
|              |  |  |
 --------------    --
    ضُبطَت      لم تتغير
الآن، يجب أن يبدو المثال التالي واضحًا ومفهومًا، وأن تعرف كيفية استعمال المعامل =| لضبط البتات التي تريدها:
myByte =  B10101010;
myByte |= B00000011 == B10101011;

انظر أيضًا

  • المعامل =&: يُستعمَل المركَّب عادةً مع متغير وثابت لتصفير قيمة بت محدَّد (أي جعله في الحالة LOW).
  • المعامل =*: يعدُّ اختزالٌ لعملية ضرب القيمة الحالية لمتغيرٍ بثابتٍ أو متغيرٍ آخر ثم تخزين الناتج في المتغير نفسه.
  • المعامل ++: يزيد قيمة المتغير المستعمل معه بمقدار 1.
  • المعامل =+: يعدُّ اختزالٌ لعملية جمع القيمة الحالية لمتغيرٍ مع ثابتٍ أو متغيرٍ آخر ثمَّ تخزين الناتج في المتغير نفسه.
  • المعامل --: ينقص قيمة المتغير المستعمل معه بمقدار 1.
  • المعامل =-: يعدُّ اختزالٌ لعملية طرح ثابتٍ أو متغيرٍ آخر من القيمة الحالية لمتغيرٍ ثمَّ تخزين الناتج في المتغير نفسه.
  • المعامل =/: يعدُّ اختزالٌ لعملية قسمة القيمة الحالية لمتغيرٍ على ثابتٍ أو متغيرٍ آخر ثم تخزين الناتج في المتغير نفسه.
  • المعامل =^: يُستعمَل المركَّب عادةً مع متغير وثابت لقلب (عكس) قيمة بت محدَّد.
  • المعامل |: يُجرِي في لغة ++C العملية OR على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة.

مصادر