Arduino/bitwise operators/bitwiseor

من موسوعة حسوب
< Arduino‏ | bitwise operators
مراجعة 14:29، 10 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (أنشأ الصفحة ب'يُجرِي المعامل <code>|</code> في لغة ++C العملية OR على كل بتين متقابلين من بتات العددين المعطيين بشكل...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يُجرِي المعامل | في لغة ++C العملية OR على كل بتين متقابلين من بتات العددين المعطيين بشكل مستقل ويعطي القيمة العددية الناتجة. وفقًا لهذا التعريف، إن كانت قيمة أحد البتَّين 1، فالقيمة الناتجة عن تطبيق العملية OR عليهما هي 1؛ خلا ذلك، ستكون القيمة الناتج هي 0. تفحص الشكل التالي لفهم العملية بوضوح:

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  1  1  1    result = operand1 | operand2

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

operand1 & operand2;

أمثلة

مثالٌ على استعمال المعامل |:

int a =  92;    // 0000000001011100 :القمية الثنائية هي
int b = 101;    // 0000000001100101 :القيمة الثنائية هي
int c = a | b;  // الناتج في النظام الثنائي هو: 0000000001111101 وفي النظام العشري 125

أحد أشهر استعمالات العملية OR مع الأعداد الثنائية هو تعيين القيمة 1 إلى بت محدد (أو مجموعة من البتات) لقيمة عددية صحيحة. تفحَّص المثال التالي الذي يشرح ذلك:

DDRD = DDRD | B11111100; 
// (xx | 00 == xx) ضبط البتات من 2 إلى 7 إلى القيمة 1 وترك البت 1 والبت 0 دون تغيير 
// مع الأرجل من 2 إلى 7 pinMode(pin, OUTPUT) تشبه هذه العملية تمامًا استدعاء

انظر أيضًا

  • المعامل ||:
  • درسٌ عمليٌّ على العمليات الحسابية التي تجرَى على البت.

مصادر