ثنائی کے اختیارات python 2




سوالات: آپریٹرز اور لیفٹیننٹ کیا؛ & لیفٹیننٹ ؛، & gt؛ پر & GT ؛، & AMP ؛، |، ، اور ^ ہے؟ یہ ازگر bitwise آپریٹرز ہیں. تمہید: twos اضافی-اضافی نمبر ان آپریٹرز کے تمام عام میں کچھ اشتراک - وہ "bitwise" آپریٹرز ہیں. وہ نمبر (عام طور پر) پر کام، لیکن یہ twos اضافی-اضافی بائنری میں لکھا بٹس، کے ایک تار کے طور پر اگر اس کی بجائے یہ ایک واحد قدر کے طور پر اگر اس تعداد کے علاج کے، وہ اس کا علاج، ہے. ایک دو کی اضافی بائنری positve integers کے لئے کلاسیکی بائنری نمائندگی کے طور پر ایک ہی ہے لیکن منفی تعداد کے لئے تھوڑا سا مختلف ہے. منفی تعداد ان کے مطلق قیمت پر دو کی اضافی آپریشن کارکردگی کا مظاہرہ کی طرف سے نمائندگی کر رہے ہیں. تو twos اضافی-اضافی ثنائی کے ایک مختصر خلاصہ حکم میں ہے: مثبت integers کے لئے دو کی اضافی بائنری: 0 "0" کے طور پر لکھا ہے 1 "1" کے طور پر لکھا ہے 2 "10" کے طور پر لکھا ہے 3 "11" ہے 4 "100" ہے 5 "101" ہے . . 1029 "10000000101" == 2 ** 10 + 2 ** 2 + 2 ** 0 == 1024 + 4 + 1 منفی integers کے لئے دو کی اضافی بائنری: منفی تعداد کی بجائے ایک معروف صفر کے ایک معروف ایک ساتھ لکھا جاتا ہے. آپ کو آپ twos اضافی-اضافی تعداد کے لئے صرف 8 بٹس استعمال کر رہے ہیں اگر ایسا ہے تو، پھر آپ "00000000" سے پیٹرن علاج منفی نمبر لکھنے کے لئے "01111111" پوری 0 سے 127 کی تعداد، اور ریزرو کے طور پر "1xxxxxxx" کرنے کے لئے. ایک منفی نمبر، - x، (X-1) سراہا بٹس کی سب کے ساتھ کے لئے تھوڑا سا نمونہ استعمال کیا لکھا ہے (1 سے 0 یا 1 سے 0 تبدیل کر دیا). تو -1 اضافی ہے (1 - 1) = اضافی (0) = "11111111"، اور -10 اضافی (10 - 1) ہے = اضافی (9) = اضافی ("00001001") = "11110110". یہ منفی نمبروں -128 ("10000000") کے نیچے تمام راستے جانے کا مطلب ہے کہ. کورس کے، ازگر 8 بٹ تعداد کا استعمال نہیں کرتا. تاہم یہ بہت بٹس آپ کی مشین پر مقامی تھے کا استعمال کرنے کے لئے استعمال، لیکن اس غیر پورٹیبل تھا کے بعد، اس نے حال ہی بٹس کی ایک لامحدود تعداد میں استعمال کرنے کے لئے تبدیل کر دیا ہے. یہ لکھا گیا تھا کے طور پر اگر اس طرح تعداد -5 bitwise آپریٹرز کی طرف سے علاج کیا جاتا ہے ". 1111111111111111111011". واہ! کہ راستے سے باہر تمہید (اور ارے، آپ کو شاید یہ پہلے ہی پتہ تھا) کے ساتھ، آپریٹرز کی وضاحت کرنے کے لئے آسان ہیں: آپریٹرز: X کریں & lt؛ کریں & lt؛ بٹس کے ساتھ Y ریٹرن X Y مقامات کی طرف سے چھوڑ دیا (دائیں ہاتھ کی طرف اور نیا بٹس zeros ہیں) میں منتقل کر دیا. یہ 2 ** Y کی طرف سے ایکس ضرب کے طور پر ایک ہی ہے. X & GT؛ & gt؛ پر بٹس کے ساتھ Y ریٹرن X Y مقامات کی طرف سے دائیں کرنے کے لئے منتقل کر دیا گیا. اس کے طور پر ایک ہی ہے // '2 ** Y کی طرف سے ایکس ING. X اور AMP؛ Y ایک "bitwise اور" ہے. | Y X اور کے اسی بٹ 1 ہے تو پیداوار کا ہر بٹ ورنہ یہ 0. X ہے، 1 ہے Y ایک "bitwise یا" ہے. Y X اور اسی تھوڑا 0 ہے تو پیداوار کا ہر بٹ ورنہ یہ 1، 0 ہے. ایکس ایکس کے اضافی واپسی - 1. ایکس ^ Y "خصوصی یا bitwise" ایک ہے - ایک 1. اس کے لئے آپ ایک 0 کے لئے ہر 1 سوئچنگ کی طرف سے حاصل کی تعداد اور ہر 0 - x طور پر ایک ہی ہے. Y میں ہے کہ تھوڑا سا 0، اور Y میں ہے کہ تھوڑا سا 1 ہے تو یہ X میں بٹ کی اضافی ہے تو پیداوار کا ہر بٹ ایکس میں اسی بٹ کے طور پر ایک ہی ہے. بس ایک منفی نمبر 1 بٹس کی کہ لامتناہی سلسلہ کے بارے میں یاد، اور یہ سب احساس کرنا چاہیے. دیگر کلاسز ایک نقطہ: ازگر کا آپریٹر آپ اوور لوڈنگ کی اجازت دیتا ہے، تو کچھ کلاسوں bitwise آپریٹرز کی اجازت کرنے کے لئے لکھا جا سکتا ہے، لیکن کچھ دوسرے معنی کے ساتھ. | مثال کے طور پر، ازگر 2.3 کے لئے نئے سیٹ ماڈیول استعمال کرتا ہے اور اور AMP؛ یونین اور چوراہا کے لئے.