عملگرهای بیتی در پایتون – آموزش Python

  • یکشنبه ۱۱ شهریور ۱۳۹۷
  • بازدید ۹,۱۳۰ نفر

تصویر python-bitwise-operators_3316 عملگرهای بیتی در پایتون  - آموزش Python

عملگرهای بیتی در پایتون

از عملگرهای بیتی در پایتون برای دستکاری بیت ها استفاده می شود. فرض کنید a = 60 و b = 13 باشد، آنگاه فرمت باینری آن ها به صورت زیر خواهد بود:

در جدول زیر عملگرهای بیتی پشتیبانی شده در زبان پایتون را مشاهده می کنید:

عملگرتوضیحاتمثال
& Binary ANDاگر هر دو عملوند true باشند، یک بیت در نتیجه کپی می کند.(a & b) معادل 0000 1100
| Binary ORاگر یکی از عملوندها true باشند، یک بیت در نتیجه کپی می کند.(a | b) = 61 معادل 0011 1101
^ Binary XORاگر مقدار هر دو عملوند یکسان نباشد (یعنی هر دو true یا هر دو false نباشند)، یک بیت در نتیجه کپی می کند.(a ^ b) = 49 معادل 0011 0001
~ Binary Ones Complementعملگر یکانی نقیض می باشد و کارش این است که هر جا 1 بود 0 و هر جا 0 بود 1 می گذارد.(~a ) = -61 معادل 1100 0011
<< Binary Left Shiftمقدار عملوند چپ را به مقدار بیت های تعیین شده در عملوند راست، به چپ شیفت می دهد.a << 2 = 240 معادل 1111 0000
>> Binary Right Shiftمقدار عملوند چپ را به مقدار بیت های تعیین شده در عملوند راست، به راست شیفت می دهد.a >> 2 = 15 معادل 0000 1111

عملگر & (AND بیتی)

در عملگر & اگر مقدار هر دو عملوند برابر ۱ باشد نتیجه ۱ و اگر برابر ۱ نباشند نتیجه ۰ را بر می گرداند.

مثال:

امتحان کنید

خروجی:

عملگر | (OR بیتی)

در عملگر | اگر مقدار یکی از عملوندها برابر ۱ باشد نتیجه ۱ و اگر مقدار هر دو عملوندها ۰ باشد نتیجه ۰ را بر می گرداند.

مثال:

امتحان کنید

خروجی:

عملگر ^ (XOR بیتی)

در عملگر ^ اگر مقدار عملوندها با یکدیگر فرق داشته باشد مقدار ۱ و اگر مقدار عملوندها با هم برابر باشند مقدار ۰ را بر می گرداند.

مثال:

امتحان کنید

خروجی:

عملگر ~ (NOT بیتی)

در عملگر ~ اگر مقدار عملوند برابر ۱ باشد نتیجه ۰ و اگر مقدار عملوند ۰ باشد نتیجه ۱ را بر می گرداند.

توجه! عملگر ~ برخلاف عملگرهای دیگر که روی دو عملوند کار می کنند، فقط یک عملوند دارد.

مثال:

امتحان کنید

خروجی:

عملگر << (شیفت به چپ بیتی)

در عملگر << بیت های مقدار عملوند را به تعداد تعیین شده به سمت چپ شیف داده و از سمت راست به جای مقدار های شیفت داده شده بیت ۰ قرار می دهد.

مثال:

امتحان کنید

خروجی:

عملگر >> (شیفت به راست بیتی)

در عملگر >> بیت های مقدار عملوند را به تعداد تعیین شده به سمت راست شیف داده و از سمت چپ به جای مقدار های شیفت داده شده بیت ۰ قرار می دهد.

مثال:

امتحان کنید

خروجی:

 

باکس دانلود
ثبت نظر
ریفریش کنید!
نظرات کاربران (۲ مورد)
  1. تصویر آواتار کاربر 0
    حمید یکشنبه , 15 تیر

    سلام درباره عملگر ~ اگر a=60 باشه در اینصورت ~a=0b11000011 خواهد بود که برابر با 195 هست پس چرا این رو برابر -61 نشون میده؟؟ چیزی که من راجع به این عملگر دیدم اینه که به اعداد یه دونه اضافه میکنه و بعد اونا رو قرینه میکنه

    • تصویر آواتار کاربر 0
      محمد نائینییکشنبه , 15 تیر

      سلام عملیات بیتی در کل از 8 بیت تشکیل میشه که بخوایم از راست به چپ بیت ها رو نامگذاری کنیم به این شکل میشه: بیت اول 1+ بیت دوم 2+ بیت سوم 4+ بیت چهارم 8+ بیت پنجم 16+ بیت ششم 32+ بیت هفتم 64+ و اما بیت هشتم که مهم ترین نکته همین این قسمته که در چپ ترین بیت دیگه عددمون مثبت نیست و نقش منفی ایفا میکنه و به جای اینکه 128+ باشه 128- خوانده میشه تو اون موردی که به نظر شما 195 میشه شما بیت هشتم هم مثبت در نظر گرفتید (195 = 1 + 2 + 64 + 128) که این کاملا اشتباهه روند محاسباتی صحیح این سوال به صورت مقابل میشه (61 - = 1 + 2 + 64 + 128 -)