سی زبان میں بٹ وائیز آپریٹرز۔

Bitwise Operators C Language



بٹ وائیز آپریٹرز ، جنہیں اکثر بٹ لیول کوڈنگ کہا جاتا ہے ، کو صرف بٹ لیول پر ڈیٹا کی تشریح کے لیے کاسٹ آف کیا گیا ہے۔ بٹ وائز بٹ لیول پر ایک یا اس سے بھی زیادہ بٹ پیٹرن اور بائنری نمبرز پر آپریشن کرتا ہے۔ ان کا استعمال عددی حسابات کے تخمینے کی رفتار کو تیز کرنے کے لیے کیا گیا ہے۔ یہ دو نمبروں پر مشتمل ہے جن میں سے ایک 0 اور دوسرا 1 ہے۔ یہاں کچھ بٹ وائیز آپریٹرز ہیں جن پر ہم اپنے مضمون میں بحث کریں گے۔

اپنے لینکس سسٹم سے لاگ ان کریں اور کنسول ٹرمینل کھولنے کے لیے Ctrl+Alt+T شارٹ کٹ آزمائیں۔ ہمارے پاس سی زبان میں بٹ وائیز آپریٹرز کے کاموں کی تفصیل کے لیے کچھ مثالیں ہوں گی۔ آئیے ہر بٹ وائز آپریٹر کے بارے میں الگ الگ وضاحت کریں۔







بٹ وائی اور:

بٹ وائیز آپریٹر کو تھوڑا سا نتیجہ نقل کرنے کے لیے استعمال کیا گیا ہے اگر وہ بٹ دونوں باہمی کاموں میں موجود ہو۔ C یا C ++ کو 2 آپریڈز درکار ہوتے ہیں جو ان دو عددوں میں سے ہر ایک پر انجام دیتے ہیں۔ بٹ وائیز اور نتائج 1 جب دونوں بٹس کی قدر 1 ہوتی ہے۔ تو ، کام کو سمجھنے کے لیے ، نینو ایڈیٹر کا استعمال کرتے ہوئے سی ٹائپ فائل بنائیں اور کھولیں۔ اس کے لیے ، ہمیں شیل میں نینو ہدایات کا استعمال کرنا ہوگا:



$نینوtest.c



Bitwise AND آپریٹر کا کوڈ نیچے دی گئی تصویر میں دکھایا گیا ہے۔ آپ کو صرف یہ کرنا ہے کہ یہ کوڈ اپنی GNU نینو ایڈیٹر فائل test.c میں لکھیں جیسا کہ ہے۔ اس کوڈ میں stdio.h ہیڈر لائبریری ہے جس کے بغیر ہم C پروگرامنگ میں کوڈنگ نہیں کروا سکتے۔ پھر ہم نے ایک اہم طریقہ بنایا ہے اس کی واپسی کی قسم کو بطور عدد۔ سی زبان میں ، کوڈ پر عملدرآمد مرکزی طریقہ کے ذریعے کیا جاتا ہے۔ لہذا ہم نے دو انٹیجر ٹائپ متغیرات کا اعلان کیا ہے ، x اور y ، اس کے مطابق اقدار 35 اور 13۔ اس کے بعد ، ایک اور عدد متغیر صفر کے ساتھ اس کی قیمت کے طور پر متعین کیا گیا ہے۔ ہم پہلے دو عدد متغیرات استعمال کریں گے اور ان کے درمیان بٹ وائیز اور آپریٹر لگائیں گے۔ یہ کام اگلی لائن پر کیا گیا ہے جہاں AND آپریٹر کو بطور & استعمال کیا گیا ہے ، اور نتیجے کی قیمت کو null متغیر z میں محفوظ کیا جائے گا۔ پھر ہم نے ٹرمینل اسکرین میں نتیجے کی قیمت ظاہر کرنے کے لیے پرنٹ اسٹیٹمنٹ کا استعمال کیا ہے ، اور مرکزی طریقہ بند ہو جاتا ہے۔ GNU شارٹ کٹ Ctrl+S کا استعمال کرتے ہوئے اپنی فائل کو محفوظ کریں اور پھر کی بورڈ ٹائپ رائٹر سے Ctrl+X کے ذریعے نانو ایڈیٹر چھوڑ دیں۔





لہذا ، فائل کو محفوظ کرنے کے بعد مندرجہ بالا کوڈ مرتب کرنے کا وقت ہے۔ اپنے کنسول شیل میں جی سی سی ہدایات استعمال کریں جبکہ کسی فائل کا نام test.c یا جو کچھ بھی آپ نے فائل کا نام دیا ہے اور انٹر کی کو دبائیں۔ آپ دیکھ سکتے ہیں کہ اس میں کوئی خرابی نہیں ہے۔ اس کا مطلب ہے کہ کوڈ دستی طور پر درست ہے۔



$جی سی سیtest.c

کوڈ مرتب کرنے کے بعد ، اب وقت آگیا ہے کہ کوڈ پر عملدرآمد کیا جائے۔ اس مقصد کے لیے ، شیل میں بیان کردہ ذیل سوال کو چلائیں۔ آؤٹ پٹ 1 کو بطور نتیجہ دکھا رہا ہے۔ اس کا مطلب یہ ہے کہ ہمارے دونوں عدد متغیرات میں سے ایک بٹ میں 1 ہے۔ یہی وجہ ہے کہ یہ 1 لوٹتا ہے۔

$./a.out

بٹ وائز یا:

اب ، بٹ وائیز یا آپریٹر کو تفصیل سے بتانا ہے۔ بٹ وائیز آپریٹر 1 کو اس کے نتیجے میں واپس کرتا ہے جب اس کا ایک بٹ 1 ہوتا ہے۔ ہمیں دیکھنا ہے کہ وہ بٹس کس نمبر پر بنتے ہیں۔ تو ، پہلے وہی test.c دستاویز کھولیں۔ Ctrl+S کلید کا استعمال کرتے ہوئے نیچے دکھایا گیا کوڈ GNU فائل میں محفوظ کریں۔ کوڈ تقریبا bit ایک جیسا ہے جیسا کہ اوپر بٹ وائز اور آپریٹر کی مثال ہے۔ اس بار ہم نے صرف عدد x کی قدر کو 47 میں تبدیل کیا ہے ، اور ہم نے OR آپریٹر استعمال کیا ہے ، جیسے | دونوں متغیر کے درمیان کوڈ مرتب کرنے کے لیے فائل چھوڑیں۔

دستاویز test.c کو کامیابی کے ساتھ انجام دینے کے بعد ، یہ 47 آؤٹ پٹ بٹ دکھاتا ہے۔

$./a.out

Bitwise XOR:

بٹ وائز آپریٹر 1 واپس کرتا ہے جب دونوں نمبر بٹس مختلف ہوتے ہیں۔ لہذا جب بٹس ایک جیسے ہوں گے تو یہ 0. حاصل کرے گا۔ ^ آپریٹر کا نشان بٹ وائیز آپریٹر کی نمائندگی کرے گا۔ تو پھر ، دستاویز کھولیں اور وہی پرانا کوڈ GNU فائل ایڈیٹر میں لکھیں۔ اس بار ہم inte آپریٹرز کو دو انٹیجر متغیر میں استعمال کر رہے ہیں ، اور نتیجہ ٹرمینل میں پرنٹنگ کے دوران z متغیر میں محفوظ ہو جائے گا۔

فائل کو مرتب کریں اور چلائیں۔ اس کا مطلب ہے کہ XOR آپریٹر کو دو انٹیجر متغیرات پر لاگو کرنے کے بعد نیا انٹیجر 34 پیدا ہوتا ہے۔

$./a.out

بٹ وائی تکمیل:

یہ آپریٹر صرف ایک متغیر پر لاگو کیا جائے گا ، اور یہ بٹ نمبر کی قیمت کو واپس لے جائے گا۔ مثال کے طور پر ، یہ 0 بٹ کو 1 اور 1 کو 0 بٹ میں بدل دے گا۔ ایک ہی فائل میں ایک ہی کوڈ لکھیں لیکن لائن 6 میں تھوڑی تبدیلی کے ساتھ ہم نے x سے z کو ریورس تفویض کیا ہے۔

فائل مرتب کریں اور اسے چلائیں۔ C میں ، Bitwise تکمیل کا نتیجہ منفی علامت کے ساتھ 1 کے ساتھ بڑھا دیا گیا ہے۔

بائیں شفٹ آپریٹر:

یہ بٹس کی جگہ کو کسی حد تک بدل دے گا۔ ایک ہی کوڈ نیچے دی گئی تصویر میں دکھایا جا سکتا ہے۔ اس مثال میں ، ہم 2 بٹس کو بائیں طرف منتقل کریں گے۔

آؤٹ پٹ 188 کو نئی پیدا کردہ قیمت کے طور پر ظاہر کرتا ہے۔

$./a.out

دائیں شفٹ آپریٹر:

یہ وہی کام کرتا ہے جیسا کہ بائیں شفٹ کام کرتا ہے لیکن مخالف سمت میں ، جیسا کہ نیچے کوڈ میں دکھایا گیا ہے۔

اس بار ہمیں 2 بٹس دائیں جانب منتقل کرنے پر بطور آؤٹ پٹ 11 ملے ہیں۔

$./a.out

نتیجہ:

ہم نے اس آرٹیکل میں تمام بنیادی 6 بٹ وائیز آپریٹرز کو اپنے سی لینگویج کوڈ میں شامل کیا ہے۔ مجھے امید ہے کہ آپ ہمارے گائیڈ سے جو چاہیں حاصل کر لیں گے۔