logo

عامل Bitwise في C

عوامل تشغيل البت هي عوامل التشغيل المستخدمة لتنفيذ العمليات على البيانات على مستوى البت. عندما نقوم بتنفيذ عمليات البت، يُعرف ذلك أيضًا بالبرمجة على مستوى البت. يتكون من رقمين، إما 0 أو 1. ويستخدم بشكل أساسي في الحسابات الرقمية لإجراء العمليات الحسابية بشكل أسرع.

لدينا أنواع مختلفة من عوامل البت في لغة البرمجة C. فيما يلي قائمة عوامل تشغيل bitwise:

المشغل أو العامل معنى المشغل
& عامل التشغيل AND
| مشغل Bitwise OR
^ مشغل OR الحصري لـ Bitwise
~ عامل مكمل واحد (عامل أحادي)
<< مشغل التحول الأيسر
>> مشغل التحول الأيمن

دعونا نلقي نظرة على جدول الحقيقة لعوامل البت.

X و س&ص س|ص س^ص
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 1

عامل التشغيل AND

يُشار إلى عامل Bitwise AND بعلامة الضم المفردة (&). تتم كتابة معاملين صحيحين على جانبي عامل التشغيل (&). إذا كانت البتات المقابلة لكلا المعاملين هي 1، فإن مخرجات عملية AND هي 1؛ وإلا فإن الناتج سيكون 0.

على سبيل المثال،

 We have two variables a and b. a =6; b=4; The binary representation of the above two variables are given below: a = 0110 b = 0100 When we apply the bitwise AND operation in the above two variables, i.e., a&amp;b, the output would be: Result = 0100 

كما يمكننا أن نلاحظ من النتيجة المذكورة أعلاه أنه تتم مقارنة بتات كلا المتغيرين واحدة تلو الأخرى. إذا كان بت كلا المتغيرين هو 1 فإن الناتج سيكون 1، وإلا 0.

دعونا نفهم عامل التشغيل AND من خلال البرنامج.

حرف إلى سلسلة Java
 #include int main() { int a=6, b=14; // variable declarations printf(&apos;The output of the Bitwise AND operator a&amp;b is %d&apos;,a&amp;b); return 0; } 

في الكود أعلاه، قمنا بإنشاء متغيرين، أي 'أ' و 'ب'. قيمتي 'أ' و'ب' هي 6 و14 على التوالي. القيمة الثنائية لـ 'a' و'b' هي 0110 و1110 على التوالي. عندما نطبق عامل التشغيل AND بين هذين المتغيرين،

أ و ب = 0110 && 1110 = 0110

انتاج |

عامل Bitwise في C

مشغل Bitwise OR

يتم تمثيل عامل التشغيل bitwise OR بعلامة رأسية واحدة (|). تتم كتابة معاملين صحيحين على جانبي الرمز (|). إذا كانت قيمة البت لأي من المعاملات هي 1، فسيكون الإخراج 1، وإلا 0.

على سبيل المثال،

 We consider two variables, a = 23; b = 10; The binary representation of the above two variables would be: a = 0001 0111 b = 0000 1010 When we apply the bitwise OR operator in the above two variables, i.e., a|b , then the output would be: Result = 0001 1111 

كما يمكننا أن نلاحظ من النتيجة المذكورة أعلاه أنه تتم مقارنة بتات كلا المعاملين واحدة تلو الأخرى؛ إذا كانت قيمة أي من البتات هي 1، فسيكون الإخراج 1 وإلا 0.

دعونا نفهم عامل التشغيل bitwise OR من خلال البرنامج.

 #include int main() int a=23,b=10; // variable declarations printf(&apos;The output of the Bitwise OR operator a 

انتاج |

عامل Bitwise في C

مشغل OR الحصري لـ Bitwise

تتم الإشارة إلى عامل التشغيل OR الحصري لـ Bitwise بالرمز (^). تتم كتابة معاملين على جانبي عامل التشغيل الحصري OR. إذا كان البت المقابل لأي من المعامل هو 1، فسيكون الناتج 1، وإلا 0.

على سبيل المثال،

 We consider two variables a and b, a = 12; b = 10; The binary representation of the above two variables would be: a = 0000 1100 b = 0000 1010 When we apply the bitwise exclusive OR operator in the above two variables (a^b), then the result would be: Result = 0000 1110 

كما يمكننا أن نلاحظ من النتيجة المذكورة أعلاه أنه تتم مقارنة بتات كلا المعاملين واحدة تلو الأخرى؛ إذا كانت قيمة البت المقابلة لأي من المعامل هي 1، فسيكون الإخراج 1 وإلا 0.

دعونا نفهم عامل التشغيل OR الحصري للبت من خلال البرنامج.

 #include int main() { int a=12,b=10; // variable declarations printf(&apos;The output of the Bitwise exclusive OR operator a^b is %d&apos;,a^b); return 0; } 

انتاج |

عامل Bitwise في C

مشغل تكملة Bitwise

يُعرف عامل التشغيل المكمل للبت أيضًا باسم عامل التشغيل المكمل. ويرمز لها بالرمز التلدة (~). يستغرق الأمر معاملًا أو متغيرًا واحدًا فقط وينفذ عملية مكملة على المعامل. عندما نطبق العملية التكميلية على أي بت، يصبح 0 1 و1 يصبح 0.

على سبيل المثال،

 If we have a variable named &apos;a&apos;, a = 8; The binary representation of the above variable is given below: a = 1000 When we apply the bitwise complement operator to the operand, then the output would be: Result = 0111 

كما يمكننا أن نلاحظ من النتيجة أعلاه أنه إذا كان البت 1، فإنه يتغير إلى 0 وإلا 1.

دعونا نفهم العامل المكمل من خلال البرنامج.

 #include int main() { int a=8; // variable declarations printf(&apos;The output of the Bitwise complement operator ~a is %d&apos;,~a); return 0; } 

انتاج |

عامل Bitwise في C

مشغلي التحول bitwise

يوجد نوعان من عوامل تحويل اتجاه البت في برمجة لغة C. سوف يقوم مشغلو إزاحة البتات بإزاحة البتات إما على الجانب الأيسر أو الجانب الأيمن. لذلك، يمكننا القول أن معامل تحويل البت ينقسم إلى فئتين:

  • مشغل التحول الأيسر
  • مشغل التحول الأيمن

مشغل التحول الأيسر

إنه عامل يقوم بنقل عدد البتات إلى الجانب الأيسر.

بناء جملة مشغل التحول الأيسر موضح أدناه:

 Operand &lt;&lt; n 

أين،

المعامل هو تعبير عدد صحيح نطبق عليه عملية التحول إلى اليسار.

n هو عدد البتات المراد إزاحتها.

في حالة مشغل التحول الأيسر، سيتم إزاحة البتات 'n' على الجانب الأيسر. سيتم إخراج البتات 'n' الموجودة على الجانب الأيسر، وسيتم ملء البتات 'n' الموجودة على الجانب الأيمن بالصفر.

على سبيل المثال،

 Suppose we have a statement: int a = 5; The binary representation of &apos;a&apos; is given below: a = 0101 If we want to left-shift the above representation by 2, then the statement would be: a &lt;&lt; 2; 0101&lt;<2 = 00010100 < pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=5; // variable initialization printf(&apos;The value of a&lt;<2 is : %d ', a<<2); return 0; } < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-5.webp" alt="Bitwise Operator in C"> <p> <strong>Right-shift operator</strong> </p> <p>It is an operator that shifts the number of bits to the right side.</p> <p> <strong>Syntax of the right-shift operator is given below:</strong> </p> <pre> Operand &gt;&gt; n; </pre> <p> <strong>Where,</strong> </p> <p>Operand is an integer expression on which we apply the right-shift operation.</p> <p>N is the number of bits to be shifted.</p> <p>In the case of the right-shift operator, &apos;n&apos; bits will be shifted on the right-side. The &apos;n&apos; bits on the right-side will be popped out, and &apos;n&apos; bits on the left-side are filled with 0.</p> <p> <strong>For example, </strong> </p> <pre> Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 </pre> <p> <strong>Let&apos;s understand through a program.</strong> </p> <pre> #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;2); return 0; } </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/51/bitwise-operator-c-6.webp" alt="Bitwise Operator in C"> <hr></2></pre></2>

أين،

المعامل هو تعبير عدد صحيح نطبق عليه عملية التحول لليمين.

N هو عدد البتات التي سيتم نقلها.

سلسلة فرعية من سلسلة جافا

في حالة مشغل التحول الأيمن، سيتم إزاحة البتات 'n' على الجانب الأيمن. سيتم إخراج البتات 'n' الموجودة على الجانب الأيمن، وسيتم ملء البتات 'n' الموجودة على الجانب الأيسر بـ 0.

على سبيل المثال،

 Suppose we have a statement, int a = 7; The binary representation of the above variable would be: a = 0111 If we want to right-shift the above representation by 2, then the statement would be: a&gt;&gt;2; 0000 0111 &gt;&gt; 2 = 0000 0001 

دعونا نفهم من خلال البرنامج.

 #include int main() { int a=7; // variable initialization printf(&apos;The value of a&gt;&gt;2 is : %d &apos;, a&gt;&gt;2); return 0; } 

انتاج |

عامل Bitwise في C