معاملات Bitwise في لغة C.

Bitwise Operators C Language



تم استبعاد مشغلي Bitwise ، المعروفين غالبًا باسم تشفير مستوى البت ، لتفسير البيانات فقط على مستوى البتات. ينفذ Bitwise عمليات على واحد أو حتى أنماط بت وأرقام ثنائية إضافية على مستوى البت. تم استخدام هذه لتسريع تقدم التقدير للحسابات الرقمية. يتكون من رقمين ، أحدهما يساوي 0 والآخر 1. وإليك بعض عوامل تشغيل البت التي سنناقشها في مقالتنا.

قم بتسجيل الدخول من نظام Linux الخاص بك وجرب اختصار Ctrl + Alt + T لفتح وحدة التحكم الطرفية. سيكون لدينا بعض الأمثلة للتوسع في عمليات مشغلي البتات في لغة C. دعونا نوضح بالتفصيل كل عامل تشغيل أحادي على حدة.







أحادي المعامل AND:

تم استخدام عامل تشغيل bitwise لنسخ بعض الشيء إلى النتيجة إذا كان هذا البت موجودًا في كلا المعاملين المتبادلين. تتطلب C أو C ++ معاملين يقومان بتنفيذ AND على كل بت من هذين العددين الصحيحين. نتائج Bitwise AND 1 عندما يكون لكل من البتات قيمة 1. لذلك ، لفهم طريقة العمل ، قم بإنشاء وفتح ملف من النوع C باستخدام محرر Nano. لذلك ، يجب أن نستهلك تعليمات النانو في الغلاف على النحو التالي:



$نانوج



تم عرض رمز عامل تشغيل Bitwise AND في الصورة أدناه. كل ما عليك فعله هو كتابة هذا الرمز في ملف test.c GNU nano Editor الخاص بك كما هو. يحتوي هذا الرمز على مكتبة رأس stdio.h والتي بدونها لا يمكننا الحصول على الترميز في برمجة C. ثم أنشأنا طريقة رئيسية بنوع الإرجاع الخاص بها كعدد صحيح. في لغة C ، يتم تنفيذ الكود عبر الطريقة الرئيسية. لذلك أعلنا عن متغيرين من نوع الأعداد الصحيحة ، x و y ، بالقيمتين 35 و 13 وفقًا لذلك. بعد ذلك ، تم تحديد متغير عدد صحيح آخر مع صفر كقيمة له. سنستخدم أول متغيرين صحيحين ونطبق عامل التشغيل AND على مستوى البت بينهما. تم تنفيذ هذا العمل في السطر التالي حيث تم استخدام عامل التشغيل AND كـ & ، وسيتم تخزين القيمة الناتجة في المتغير الصفري z. ثم استخدمنا تعليمة الطباعة لإظهار القيمة الناتجة في شاشة المحطة الطرفية ، ويتم إغلاق الطريقة الرئيسية. احفظ ملفك باستخدام اختصار GNU Ctrl + S ثم قم بإنهاء محرر nano عبر Ctrl + X من الآلة الكاتبة للوحة المفاتيح.





لذلك ، حان الوقت لتجميع الكود أعلاه بعد حفظ الملف. استخدم تعليمات gcc في غلاف وحدة التحكم الخاصة بك أثناء استخدام اسم ملف كـ test.c أو أيًا كان اسم الملف الذي قمت بتسميته واضغط على مفتاح Enter. يمكنك أن ترى أنه لا يظهر أي خطأ ؛ هذا يعني أن الشفرة صحيحة يدويًا.



$مجلس التعاون الخليجيج

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

$./أ. خارج

أحادي المعامل OR:

الآن ، تحولت إلى توضيح عامل التشغيل 'OR'. يُرجع عامل تشغيل البتات 1 كنتيجة عندما تكون إحدى وحدات البت الخاصة به هي 1. إذا كانت كلتا بتات العددين الصحيحين تساوي 0 ، فإنها تنتج 0. بعد الحصول على جميع البتات ، ستكون هناك مجموعة من وحدات البت التي تم إنشاؤها. علينا أن نرى ما هو العدد الذي تشكلته تلك البتات. لذلك ، افتح نفس مستند test.c أولاً. اكتب ثم احفظ الكود الموضح أدناه في ملف جنو باستخدام مفتاح Ctrl + S. الكود هو نفسه تقريبًا كما في المثال أعلاه عامل التشغيل AND. هذه المرة قمنا بتغيير قيمة العدد الصحيح x إلى 47 ، واستخدمنا عامل التشغيل OR ، على سبيل المثال | بين المتغيرين. قم بإنهاء الملف لترجمة التعليمات البرمجية.

بعد تنفيذ اختبار المستند بنجاح ، فإنه يعرض 47 بت الإخراج.

$./أ. خارج

Bitwise XOR:

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

ترجمة وتشغيل الملف test.c إرجاع 34 كنتيجة لذلك. هذا يعني أن العدد الصحيح الجديد 34 يتم إنشاؤه بعد تطبيق عامل التشغيل XOR على متغيرين عدد صحيحين.

$./أ. خارج

تكملة البتات:

سيتم تطبيق هذا العامل على متغير واحد فقط ، وسيعيد قيمة رقم البت. على سبيل المثال ، سيتم تغيير 0 بت إلى 1 ومن 1 إلى 0 بت. اكتب نفس الكود في نفس الملف ولكن مع تغيير بسيط في السطر 6. قمنا بتعيين عكس x إلى z.

تجميع الملف وتشغيله. في C ، تمت زيادة نتيجة تكملة Bitwise بـ 1 بعلامة سالبة.

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

سوف يغير مكان البتات إلى حد ما. يمكن عرض نفس الرمز في الصورة الملحقة- أدناه. في هذا المثال ، سنقوم بتحويل 2 بت إلى اليسار.

يظهر الناتج 188 كقيمة تم إنشاؤها حديثًا.

$./أ. خارج

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

إنه يعمل بنفس طريقة عمل التحول الأيسر ولكن في الاتجاه المعاكس ، كما هو موضح في الكود أدناه.

هذه المرة لدينا 11 كناتج عند إزاحة 2 بت إلى الجانب الأيمن.

$./أ. خارج

استنتاج:

لقد قمنا بتغطية جميع مشغلي البتات الستة الأساسيين في كود لغة سي الخاص بنا في هذه المقالة. أتمنى أن تحصل على ما تريده من دليلنا.