logo

مشغلي التحول في C

سيناقش هذا القسم عوامل التحويل Bitwise في لغة البرمجة C. يتم استخدام عامل التحويل Bitwise لتحويل البتات الثنائية إما في الاتجاه الأيسر أو الاتجاه الأيمن وفقًا لمتطلبات البرنامج.

مشغلي التحول في C

يتم تصنيف مشغلي التحول إلى نوعين بناءً على موضع إزاحة البتات.

  1. مشغل التحول الأيسر
  2. مشغل التحول الأيمن

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

عامل التحويل الأيسر هو نوع من مشغل التحويل Bitwise، الذي ينفذ العمليات على البتات الثنائية. إنه عامل ثنائي يتطلب معاملين لإزاحة أو نقل موضع البتات إلى الجانب الأيسر وإضافة أصفار إلى المساحة الفارغة التي تم إنشاؤها على الجانب الأيمن بعد إزاحة البتات.

بناء الجملة

أُووبس
 var_name << no_of_position 

في بناء الجملة أعلاه، يمثل var_name اسم المتغير الصحيح الذي يتم عنده التحول الأيسر (<<) operation is to be performed shift the binary bits at left side. and no_of_position variable represents number of placed or shifted in other words, operator shifts first operand on side by defined second operand.< p>

على سبيل المثال، قيمة المتغير الصحيح num هي 22، وشكله الثنائي هو 10110. الآن نستخدم عامل التحول الأيسر لتحويل البتات الثنائية 2، num = num << 2 يساوي num = num * (2) ^ 2). والقيمة الجديدة للعدد هي 22* (2 ^ 2) = 88، وهي تساوي الصيغة الثنائية 1011000.

مثال 1: برنامج لتوضيح استخدام عامل التشغيل Left Shift في لغة C

 #include int main () { // declare local variable int num; printf (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); // use left shift operator to shift the bits num = (num &lt;&lt; 2); // It shifts two bits at the left side printf (&apos; 
 After shifting the binary bits to the left side. &apos;); printf (&apos; 
 The new value of the variable num = %d&apos;, num); return 0; } 

انتاج |

 Enter a positive number: 25 After shifting the binary bits to the left side. The new value of the variable num = 100 

مثال 2: برنامج لاستخدام عامل التشغيل Left Shift في البيانات غير الموقعة لملف C

نهاية جافا للحلقة
 #include int main () { // declare local variable unsigned int num = 0xff; // use left shift operator to shift the bits num = (num &lt;&lt; 2); printf (&apos; 
 After shifting the binary bits to the left side. &apos;); printf (&apos; 
 The new value of the unsigned variable num = %d&apos;, num); return 0; } 

انتاج |

 After shifting the binary bits to the left side. The new value of the unsigned variable num = 1020 

مثال 3: برنامج لإدخال الرقم الموجب من المستخدم لإجراء عامل التحول الأيسر

 #include int main () { // declare local variable int num, bit; printf (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); printf (&apos; No. of binary bits shifted to the left side: &apos;); scanf (&apos; %d&apos;, &amp;bit); // use left shift operator to shift the bits num = (num &lt;&lt; bit); printf (&apos; 
 After shifting the bits to the left side. &apos;); printf (&apos; 
 The new value of the num = %d&apos;, num); return 0; } 

انتاج |

 Enter a positive number: 40 No. of binary bits shifted to the left side: 4 After shifting the bits to the left side. The new value of the num = 640 

في المثال أعلاه، البت الثنائي للرقم الموجب المحدد من قبل المستخدم 40 هو 101000. بعد ذلك، نأخذ 4 كرقم لتحويل البتات الثنائية على الجانب الأيسر. وبعد ذلك، يقوم عامل التحول إلى اليسار بإزاحة 4 بتات ثنائية في الجانب الأيسر، ثم يتم إنشاء مساحة في الجانب الأيمن، والتي يتم ملؤها أو إضافتها بـ 4 أصفار إلى الجانب الأيمن مما يعيد القيمة الثنائية 1010000000، وهو ما يعادل الرقم العشري 640

مشغل التحول الأيمن

عامل التحويل لليمين هو نوع من معامل إزاحة البت المستخدم لتحريك البتات على الجانب الأيمن، ويتم تمثيله كرمز السهم المزدوج (>>). مثل عامل الإزاحة الأيسر، يتطلب عامل الإزاحة الأيمن أيضًا معاملين لإزاحة البتات في الجانب الأيمن ثم إدراج الأصفار في المساحة الفارغة التي تم إنشاؤها على الجانب الأيسر بعد إزاحة البتات.

بناء الجملة

الفرز في القائمة في جافا
 var_name &gt;&gt; no_of_position 

في بناء الجملة أعلاه، يمثل var_name المتغير الصحيح الذي سيتم تنفيذ عملية الإزاحة اليمنى (>>) عليه لإزاحة البتات الثنائية في الجانب الأيمن. ويمثل المتغير no_of_position عدد البتات التي سيتم وضعها أو نقلها إلى الجانب الأيمن. بمعنى آخر، يقوم عامل الإزاحة الأيمن بإزاحة البتات الثنائية للمعامل الأول إلى الجانب الأيمن عن طريق تحديد العدد الإجمالي للبتات إلى المعامل الثاني.

مثال 1: برنامج لتوضيح استخدام عامل التشغيل Right Shift في لغة C

 #include int main () { // declare local variable int num; printf (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); // use right shift operator to shift the bits num = (num &gt;&gt; 2); // It shifts two bits at the right side printf (&apos; 
 After shifting the binary bits to the right side. &apos;); printf (&apos; 
 The new value of the variable num = %d&apos;, num); return 0; } 

انتاج |

 Enter a positive number: 25 After shifting the binary bits to the right side. The new value of the variable num = 6 

المثال 2: برنامج لاستخدام عامل التشغيل Right Shift في البيانات غير الموقعة لملف C

 #include int main () { // declare local variable unsigned int num = 0xff; // use right shift operator to shift the bits num = (num &gt;&gt; 2); printf (&apos; 
 After shifting the binary bits to the right side. &apos;); printf (&apos; 
 The new value of the unsigned variable num = %d&apos;, num); return 0; } 

انتاج |

تعدد الأشكال
 After shifting the binary bits to the right side. The new value of the unsigned variable num = 63 

مثال 3: برنامج لإدخال الرقم الموجب من المستخدم لإجراء عامل التحول الأيمن

 #include int main () { // declare local variable int num, bit; printf (&apos; Enter a positive number: &apos;); scanf (&apos; %d&apos;, &amp;num); printf (&apos; No. of binary bits shifted to the right side: &apos;); scanf (&apos; %d&apos;, &amp;bit); // use right shift operator to shift the bits num = (num &gt;&gt; bit); printf (&apos; 
 After using the right shift operator to shift the bits at the right side. &apos;); printf (&apos; 
 New value of the num = %d&apos;, num); return 0; } 

انتاج |

 Enter a positive number: 40 No. of binary bits shifted to the right side: 4 After using the right shift operator to shift the bits to the right. The new value of the num = 2