المشغل هو رمز يخبر المترجم بأداء وظائف رياضية أو منطقية محددة. لغة C غنية بالمشغلات المضمنة وتوفر الأنواع التالية من المشغلين -
- العمليات الحسابية
- العوامل العلاقية
- العوامل المنطقية
- عوامل Bitwise
- مشغلي التخصيص
- عوامل متنوعة
سننظر في هذا الفصل في طريقة عمل كل مشغل.
العمليات الحسابية
يوضح الجدول التالي جميع المعاملات الحسابية التي تدعمها لغة سي. افترض أن المتغير A يحمل 10 والمتغير B يحمل 20 ثم -
المشغل أو العامل | وصف | مثال |
---|---|---|
+ | يضيف معاملين. | أ + ب = 30 |
- | يطرح المعامل الثاني من الأول. | أ - ب = -10 |
* | يضاعف كلا المعاملين. | أ * ب = 200 |
/ | يقسم البسط على البسط. | ب / أ = 2 |
٪ | عامل المعامل والباقي بعد قسمة عدد صحيح. | ب٪ أ = 0 |
++ | عامل الزيادة يزيد قيمة العدد الصحيح بمقدار واحد. | أ ++ = 11 |
- | عامل الإنقاص يقلل من قيمة العدد الصحيح بمقدار واحد. | أ - = 9 |
العوامل العلاقية
يوضح الجدول التالي جميع العوامل الارتباطية التي يدعمها C. افترض أن المتغير A يحمل 10 والمتغير B يحمل 20 ثم -
المشغل أو العامل | وصف | مثال |
---|---|---|
== | للتحقق مما إذا كانت قيم المعاملين متساوية أم لا. إذا كانت الإجابة بنعم ، يصبح الشرط صحيحًا. | (أ == ب) ليس صحيحًا. |
! = | للتحقق مما إذا كانت قيم المعاملين متساوية أم لا. إذا كانت القيم غير متساوية ، يصبح الشرط صحيحًا. | (أ! = ب) صحيح. |
> | للتحقق مما إذا كانت قيمة المعامل الأيسر أكبر من قيمة المعامل الأيمن. إذا كانت الإجابة بنعم ، يصبح الشرط صحيحًا. | (A> B) ليس صحيحًا. |
< | للتحقق مما إذا كانت قيمة المعامل الأيسر أقل من قيمة المعامل الأيمن. إذا كانت الإجابة بنعم ، يصبح الشرط صحيحًا. | (A <B) هو الصحيح. |
> = | للتحقق مما إذا كانت قيمة المعامل الأيسر أكبر من أو تساوي قيمة المعامل الأيمن. إذا كانت الإجابة بنعم ، يصبح الشرط صحيحًا. | (أ> = ب) ليس صحيحًا. |
<= | للتحقق مما إذا كانت قيمة المعامل الأيسر أقل من قيمة المعامل الأيمن أو مساوية لها. إذا كانت الإجابة بنعم ، يصبح الشرط صحيحًا. | (أ <= ب) صحيح. |
العوامل المنطقية
يوضح الجدول التالي جميع العوامل المنطقية التي تدعمها لغة C. افترض أن المتغير A يحمل 1 والمتغير B يحمل 0 ، ثم -
المشغل أو العامل | وصف | مثال |
---|---|---|
&& | يسمى عامل التشغيل المنطقي AND. إذا كان كلا المعاملين غير صفري ، يصبح الشرط صحيحًا. | (A && B) خطأ. |
|| | يسمى عامل التشغيل المنطقي. إذا كان أي من المعاملين غير صفري ، يصبح الشرط صحيحًا. | (A || B) صحيح. |
! | يسمى المنطقي ليس عامل. يتم استخدامه لعكس الحالة المنطقية لمعامله. إذا كان الشرط صحيحًا ، فإن عامل التشغيل المنطقي NOT سيجعله خطأ. | (A && B) صحيح. |
عوامل Bitwise
يعمل عامل Bitwise على البتات ويقوم بإجراء عملية بت بت. جداول الحقيقة لـ & و | و ^ كالتالي -
ص | ف | ف & ف | ص | ف | ص ^ ف |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
افترض أ = 60 و ب = 13 في تنسيق ثنائي ، سيكونان على النحو التالي -
أ = 0011 1100
ب = 0000 1101
-----------------
أ & ب = 0000 1100
أ | ب = 0011 1101
أ ^ ب = 0011 0001
~ أ = 1100 0011
يسرد الجدول التالي عوامل تشغيل البت المدعومة بواسطة C. افترض أن المتغير "A" يحمل 60 ومتغير "B" يحمل 13 ، ثم -
المشغل أو العامل | وصف | مثال |
---|---|---|
& | ينسخ العامل الثنائي AND قليلاً إلى النتيجة إذا كانت موجودة في كلا المعاملين. | (أ ، ب) = 12 ، أي 0000 1100 |
| | عامل التشغيل الثنائي ينسخ قليلاً إذا كان موجودًا في أي من المعاملين. | (أ | ب) = 61 ، أي 0011 1101 |
^ | عامل تشغيل XOR الثنائي ينسخ البت إذا تم تعيينه في معامل واحد ولكن ليس في كليهما. | (أ ^ ب) = 49 ، أي 0011 0001 |
~ | المشغل التكميلي لـ Binary One أحادي وله تأثير "تقليب" البتات. | (~ أ) = ~ (60) ، أي. -0111101 |
<< | مشغل ثنائي اليسار. يتم نقل قيمة المعاملات اليسرى إلى اليسار بعدد البتات المحدد بواسطة المعامل الأيمن. | أ << 2 = 240 أي 1111 0000 |
>> | مشغل ثنائي التحول الأيمن. يتم نقل قيمة المعاملات اليسرى إلى اليمين بعدد البتات المحدد بواسطة المعامل الأيمن. | أ >> 2 = 15 أي 0000 1111 |
مشغلي التخصيص
يسرد الجدول التالي عوامل التشغيل التي تدعمها لغة C -
المشغل أو العامل | وصف | مثال |
---|---|---|
= | عامل التعيين البسيط. يعيّن قيمًا من معاملات الجانب الأيمن إلى معامل الجانب الأيسر | C = A + B ستخصص قيمة A + B إلى C. |
+ = | إضافة عامل التعيين AND. يقوم بإضافة المعامل الأيمن إلى المعامل الأيسر وتعيين النتيجة إلى المعامل الأيسر. | C + = A تعادل C = C + A |
- = | اطرح عامل التعيين. يقوم بطرح المعامل الأيمن من المعامل الأيسر وتخصيص النتيجة إلى المعامل الأيسر. | C - = A تعادل C = C - A |
* = | اضرب و عامل التعيين. يقوم بضرب المعامل الأيمن بالمعامل الأيسر وتعيين النتيجة إلى المعامل الأيسر. | C * = A تعادل C = C * A |
/ = | عامل القسمة والتعيين. يقسم المعامل الأيسر بالمعامل الأيمن ويخصص النتيجة للمعامل الأيسر. | C / = A تعادل C = C / A |
٪ = | عامل التخصيص والمعامل. يأخذ المعامل باستخدام معاملين ويسند النتيجة إلى المعامل الأيسر. | C٪ = A تعادل C = C٪ A |
<< = | التحول الأيسر وعامل التعيين. | C << = 2 هي نفسها C = C << 2 |
>> = | التحول الصحيح وعامل التخصيص. | C >> = 2 هو نفسه C = C >> 2 |
& = | Bitwise AND عامل التعيين. | C & = 2 هي نفسها C = C & 2 |
^ = | المعامل OR الحصري على مستوى البت ومعامل التعيين. | C ^ = 2 هو نفسه C = C ^ 2 |
| = | على مستوى البت شامل OR وعامل التخصيص. | C | = 2 هو نفسه C = C | 2 |
عوامل متنوعة Oper sizeof & ternary
إلى جانب المشغلين الذين تمت مناقشتهم أعلاه ، هناك عدد قليل من المشغلين المهمين الآخرين بما في ذلك sizeof و ؟ : بدعم من لغة سي.
المشغل أو العامل | وصف | مثال |
---|---|---|
حجم() | إرجاع حجم المتغير. | sizeof (a) ، حيث a عدد صحيح ، سيعود 4. |
& | إرجاع عنوان متغير. | &أ؛ إرجاع العنوان الفعلي للمتغير. |
* | مؤشر إلى متغير. | *أ؛ |
؟ : | التعبير الشرطي. | إذا كانت الحالة صحيحة؟ ثم قيمة X: وإلا قيمة Y |
أسبقية عوامل التشغيل في C.
تحدد أسبقية عامل التشغيل تجميع المصطلحات في تعبير ما وتقرر كيفية تقييم التعبير. عوامل معينة لها أسبقية أعلى من غيرها ؛ على سبيل المثال ، عامل الضرب له أسبقية أعلى من عامل الجمع.
على سبيل المثال ، x = 7 + 3 * 2 ؛ هنا ، تم تعيين x 13 ، وليس 20 لأن عامل التشغيل * له أسبقية أعلى من + ، لذلك يتم ضربه أولاً بـ 3 * 2 ثم يتم جمعه في 7.
هنا ، تظهر العوامل ذات الأسبقية الأعلى أعلى الجدول ، وتظهر العوامل الأقل أولوية في الجزء السفلي. ضمن التعبير ، سيتم تقييم عوامل الأولوية الأعلى أولاً.
الفئة | المشغل أو العامل | الترابطية |
---|---|---|
بوستفيكس | () [] ->. ++ - - | من اليسار إلى اليمين |
أحادي | + -! ~ ++ - - (النوع) * & sizeof | من اليمين الى اليسار |
مضاعف | * /٪ | من اليسار إلى اليمين |
مادة مضافة | + - | من اليسار إلى اليمين |
تحول | << >> | من اليسار إلى اليمين |
العلائقية | <<=>> = | من اليسار إلى اليمين |
المساواة | ==! = | من اليسار إلى اليمين |
أحادي المعامل AND | & | من اليسار إلى اليمين |
Bitwise XOR | ^ | من اليسار إلى اليمين |
أحادي المعامل OR | | | من اليسار إلى اليمين |
المنطقية AND | && | من اليسار إلى اليمين |
منطقي أو | || | من اليسار إلى اليمين |
الشرط | ؟: | من اليمين الى اليسار |
مهمة | = + = - = * = / =٪ = >> = << = & = ^ = | = | من اليمين الى اليسار |
فاصلة | و | من اليسار إلى اليمين |
تعليقات
إرسال تعليق