المعامل ^ في أردوينو

من موسوعة حسوب
اذهب إلى: تصفح، ابحث
يُجرِي المعامل ^ في لغة ++C العملية XOR على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة. وفقًا لهذا التعريف، إن كانت قيمة كلا البتَّين مختلفة، فالقيمة الناتجة عن تطبيق العملية XOR عليهما هي 1؛ خلا ذلك، ستكون القيمة الناتج هي 0. اطلع على الشكل التالي لفهم العملية بوضوح:
0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  0    result = operand1 ^ operand2

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

operand1 ^ operand2;

أمثلة

مثالٌ على استعمال المعامل ^:
int x = 12;     // 1100 :القيمة الثنائية هي
int y = 10;     // 1010 :القيمة الثنائية هي
int z = x ^ y;  // القيمة الثنائية الناتجة هي: 0110 وتساوي 6 في النظام العشري
يستعمل المعامل ^ عادةً لقلب (toggle) قيمة بتات معيَّنة (مثل تغييرها من 0 إلى 1 أو من 1 إلى 0) في تعبير عدد صحيح. عند استعمال العملية XOR مع قناع ثنائي، ستتغير قيمة البت المقابلة للقيمة 1 في القناع بينما ستبقى القيم التي تقابل القيمة 0 في القناع دون تغيير. اطلع على المثال التالي الذي يشرح كيفية جعل ضوء الليد الموصول على الرجل 5 يومض خلال فترات زمنية ثابتة:
// Blink_Pin_5
// المنطقية مع الأعداد الثنائية XOR مثالٌ عن العملية  
void setup(){
DDRD = DDRD | B00100000; // OUTPUT تهيئة الرجل 5 على أنها خرج
Serial.begin(9600);
}

void loop(){
PORTD = PORTD ^ B00100000;  // تبديل قيمة البت 5 (الرجل 5) فقط دون تغيير البتات البقية
delay(100);
}

انظر أيضًا

  • المعامل &: يُجرِي في لغة ++C العملية AND على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة.
  • المعامل >>: يُجرِي البتات الواقعة على يساره إلى اليسار عددًا محدَّدًا من الخانات مساويًا للقيمة الموجودة على يمينه.
  • المعامل <<: يُجرِي البتات الواقعة على يساره إلى اليمين عددًا محدَّدًا من الخانات مساويًا للقيمة الموجودة على يمينه.
  • المعامل |: يُجرِي في لغة ++C العملية OR على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة.
  • المعامل ~: يُجرِي في لغة ++C العملية NOT على كل بت من البتات المعطاة بشكل مستقل -بخلاف المعامل & والمعامل |- ويعطي القيمة العددية الناتجة.
  • المعامل =^: يُستعمَل المركَّب عادةً مع متغير وثابت لقلب (عكس) قيمة بت محدَّد.
  • درسٌ عمليٌّ على العمليات الحسابية التي تجرَى على البت.

مصادر