عملگرهای بیتی در پایتون – توضیح به زبان ساده با مثال و کد

۱۱۳ بازدید
آخرین به‌روزرسانی: ۱۵ فروردین ۱۴۰۳
زمان مطالعه: ۱۳ دقیقه
عملگرهای بیتی در پایتون – توضیح به زبان ساده با مثال و کد

عملگرهای بیتی در پایتون باعث افزایش توان عملیاتی این زبان برنامه‌نویسی شده اند. زبان برنامه‌نویسی پایتون به‌طور کلی دارای دو نوع عملگر، یعنی «عملگرهای منطقی» (Logical Operators) و «عملگرهای بیتی» (Bitwise Operators) است که اغلب برای مدیریت مقادیر و آرگومان‌ها به‌کار برده می‌شوند. عملگرهای بیتی به‌صورت مستقیم بر روی بیت‌های داده کار می‌کنند. استفاده از این نوع عملگرهای پایتون را قادر به اجرای محاسبات و عملیات به‌صورت مستقیم بر روی بیت‌های داده کرده است. به همچنین، برای اجرای عملیات بیتی بر روی عددهای باینری، پایتون مجموعه کاملی از عملگرهای قدرتمند بیتی را نیز فراهم کرده است. این عملگرها با فراهم کردن طیف کاملی از ابزار مخصوص مدیریت داده‌ها و اجرای عملیات الگوریتمی به برنامه‌نویسان در کار بر روی تمام بیت‌های تشکیل دهنده داده‌های عددی کمک می‌کنند. در ادامه این مطلب با انواع «عملگرهای بیتی» (Bitwise Operators)، شکل مرکب این عملگرها، تکنیک سربارگذاری عملگرهای بیتی و بعضی از موارد کاربرد این عملگرها در دنیای واقعی آشنا خواهیم شد.

در این مطلب از مجله فرادرس به‌طور عمده درباره نوع دوم یعنی عملگرهای بیتی در پایتون بحث می‌کنیم. عملگرهای بیتی در زمان اجرای عملیات تخصصی مانند کار با مجموعه‌های داده،‌ عملیات مربوط به «رمزنگاری» (Cryptography)، کار با داده‌های درون شبکه، مدیریت رابط‌های سخت‌افزاری و بهینه‌سازی بعضی از الگوریتم‌های خاص بسیار مفید هستند. این عملگرها کارایی کدها را بالاتر می‌برند و باعث دستیابی سریع‌تر به نتایج بهتر می‌شوند.

عملگر بیتی چیست؟

عملگر بیتی از دسته فرایند‌هایی است که به‌صورت مستقیم با بیت‌ها درگیر می‌شوند که در واقع جز اصلی و سازنده هر نوع داده‌ای در دنیای کامپیوتر هستند. مقدار باینری معادل 0 یا 1 به هر بیت تخصیص داده می‌شود. البته که کامپیوتر‌ها می‌توانند به‌صورت مجزا بر روی هر بیت کار کنند اما به‌طور معمول این دستگاه‌ها داده‌ها را ذخیره و فرمان‌ها را بر روی بایت‌های داده اجرا می‌کنند. بایت‌ها در واقع بسته‌های ۸ تایی از بیت‌ها هستند. بیشتر زبان‌های برنامه‌نویسی عملیات خود را بر روی گروه‌های ۸ تایی، ۱۶ تایی یا ۳۲ تایی از بیت‌ها انجام می‌دهند.

کاراکترهای اختصاصی عملگرهای بیتی، به عملیاتی اشاره می‌کنند که بر روی بیت‌ها به‌صورت تکی اجرا می‌شود. در طول اجرای عملیات بیتی، بیت‌های مجزا در دو الگوی مختلف و اندازه یکسان به‌صورت متناظر -از لحلاظ مکانی با هم همتراز می‌شوند -یک‌دیگر قرار می‌گیرند و با هم مقایسه می‌شوند.

صورت یک دختر که با عددهای 0 و 1 نورانی پوشانده شده است

در جدول زیر عملگرهای بیتی پایتون را به‌صورت کلی معرفی کرده و برای هر کدام توضیح مختصری نوشته‌ایم.

عملگرتوضیح
عملگر & شکل باینری از عملگر AND این عملگر بیت‌هایی که در هر دو عملوند حاضر هستند-بیت‌های متناظر برابر مقدار 1- را به خروجی می‌فرستد.
عملگر | شکل باینری از عملگر ORحتی اگر در یکی از عملوندها بیت برابر با 1 باشد مقدار 1 یا True به خروجی ارسال می‌شود.
عملگر ^ شکل باینری از عملگر XORوقتی مقدار 1 به خروجی می‌رود که فقط مقدار یکی از آرگومان‌ها برابر با 1 باشد و نه هر دو آرگومان.
عملگر باینری ~ برای محاسبه «متمم» (Complement) | عملگر نقضاین عملگر کار بر گرداندن بیت‌ها را انجام می‌دهد و از نوع عملیات یگانه است.
عملگر باینری  برای شیفت به راستمقدار عملوند سمت چپ این عملگر به تعداد عملوند سمت راست به سمت راست در واحد بیت شیفت داده می‌شود.

هر عملگر بیتی برای خودش عملگر مرکب نیز دارد که کاربرد ارتقا یافته‌ای را از همان عملگر ارائه می‌دهد. نمونه مرکب عملگرهای بالا را در جدول پایین نمایش داده‌ایم.

عملگرسینتکس پیاده‌سازیجمله محاسباتی معادل
&= N1 &= N2N1 = N1 & n
|= N1 |= N2N1 = N1 | n
^= N1 ^= N2N1 = N1 ^ n
= N1 >>= nN1 = N1 >> n

عملگرهای مرکب بالا روش‌های به‌روزرسانی آرگومان سمت چپ هستند در حالی که این آرگومان هنوز در حال استفاده است.

عملگرهای بیتی در پایتون چگونه کار می‌کنند؟

عملگرهای بیتی در پایتون برای اجرای عملیات بیتی بر روی اعداد استفاده می‌شوند. در این نوع از عملیات محاسباتی، ابتدای کار، مقادیر به شکل باینری خود تبدیل می‌شوند. سپس عملیات کار بر روی داده‌ها به‌صورت بیت به بیت انجام می‌گیرد. از این رو عبارت «عملگرهای بیتی» (Bitwise Operators) به این نوع عملگرها اختصاص داده شده است. در آخر کار هم داده نهایی در دستگاه ده‌دهی اعداد، به خروجی ارسال می‌شود.

عملگرهای بیتی خود از دو نوع کلی تشکیل شده‌اند. که در این مطلب از مجله فرادرس به بررسی هر دو نوع خواهیم پرداخت و برای هر کدام با استفاده از کدنویسی در زبان پایتون مثال‌هایی را نمایش می‌دهیم.

  • «عملگر منطقی بیتی» (Bitwise Logical Operator): این عملگرها برای اجرای عملیات منطقی به‌کار گرفته می‌شوند. مانند بقیه عملگرهای منطقی به‌صورت بیت به بیت عملیات محاسبه را انجام می‌دهند. رفتار این عملگرها بسیار شبیه به استفاده از عملگرهای منطقی در پایتون مانند AND و OR و NOT و غیره اما در مقیاس بیتی است. به غیر از این حقایق مبنایی، عملگرهای منطقی و بیتی بسیار شبیه به هم هستند.
  • «عملگرهای منطقی شیفت» (Bitwise Shift Operators): این عملگرها برای اجرای عملیات ضرب یا تقسیم بر دو بر روی «عدد صحیح» (Integer Number) استفاده می‌شوند. عملیات تقسیم یا ضرب بر دو با شیفت دادن همه بیت‌های تشکیل دهنده عدد به راست یا چپ اجرا می‌شود. هر وقت که بخواهیم مقدار عدد صحیحی را ضرب یا تقسیم بر دو کنیم به‌جای اجرای عملیات ریاضی ضرب و تقسیم می‌توانیم از این نوع عملگرها نیز استفاده کنیم. عملگرهای منطقی شیفت در پایتون فقط بر روی «اعداد صحیح کامپیوتری» (Integers) کار می‌کنند.

چگونه زبان برنامه‌نویسی پایتون را بیاموزیم؟

تماشای فیلم‌های آموزشی یکی از بهترین راه‌های آموختن در هر زمینه‌ای است. این روش آموزشی مزایای زیادی نسبت به سایر روش‌ها دارد. این روش حتی نسبت به کلاس‌های حضوری نیز مزایایی دارد که قابل کتمان نیست. مزایایی از قبیل عدم وجود محدودیت زمانی، هزینه‌های مالی بسیار مقرون به‌صرفه‌تر، تضمین کیفیت فیلم‌ها و مطالب آموزشی مخصوصا در وب‌سایت آموزشی فرادرس، امکان بازبینی چندباره مطالب تدریس شده و غیره باعث پرطرفدار شدن این تکنیک آموزشی شده است.

پس بهترین راه استفاده از فیلم‌های آموزشی است. سایت فرادرس فیلم‌های آموزشی بسیار خوبی با کیفیت عالی در روش آموزش و متناسب با همه سطوح دانش را برای دانشجویان فراهم کرده است. در صورتی که در اوایل مسیر یادگیری پایتون هستید دوره‌های آموزشی زیر برای شما عالی هستند.

مجموعه آموزش رایگان پایتون

اگر در نظر دارید که فیلم‌ی آموزشی، در ارتباط با این مطلب مشاهده کنید می‌توانید از فیلم مربوط به دوره رایگان آموزش عملگرها در زبان پایتون استفاده کنید. این یک فرصت بسیار عالی برای حرفه‌ای شدن است. البته اگر از قبل با این زبان برنامه‌نویسی قدرتمند آشنا شده و به دنبال افزایش مهارت‌های خود هستید، می‌توانید به‌عنوان مثال چند دوره زیر را در نظر داشته باشید.

عملگر بیتی AND

با استفاده از عملگر بیتی AND &  بر روی بیت‌های متناظر عملوندهای داده شده، «اتصال منطقی» (Logical Conjunction) بدست می‌آید.

عدد ۲ و نماد & در کنار یک دیگر بر روی دیوار قرار گرفته اند. - عملگرهای بیتی در پایتون

مثال اول

به مثالی که در ادامه پیاده‌سازی شده توجه کنید. در این کد، مثالی درباره استفاده عملگر بیتی AND با نماد & در پایتون را کدنویسی کرده‌ایم.

1x = 10   # Initialize the value of x by 10  
2y = 4     # Initialize the value of y by 4  
3# Bitwise AND operation    
4print("x & y =", x & y)    

باید کد بالا را در پایتون کامپایل کنیم. بعد از اجرای عملیات موفق کامپایل می‌توانیم این کد را اجرا کنیم. خروجی حاصل از اجرای کد بالا به‌صورت x & y = 0  نمایش داده می‌شود.

مثال دوم

در این قسمت، مثال دیگری از عملگر بیتی & را در پایتون ارائه داده‌ایم. در این مثال، داده‌های ورودی از کاربر دریافت می‌شوند. به کدی که در ادامه آمده توجه کنید.

1x = int(input("Enter the value of x: "))   # Taking user input for x  
2y = int(input("Enter the value of y: "))  # Taking user input for y  
3print("x & y =", x & y) 

الان باید کد بالا را در پایتون کامپایل کنیم و می‌توانیم بعد از اجرای عملیات موفق کامپایل این کد را اجرا کنیم. خروجی حاصل از اجرای این کد به شکل زیر شده است.

Enter the value of x: 5
Enter the value of y: 8
x & y = 0

عملگر بیتی OR

یکی دیگر از عملگرهای بیتی در پایتون عملگر OR |  است. با استفاده از این عملگر «ناپیوستگی منطقی» (Logical Disjunction) بین دو عملوند بدست می‌آید. بر اثر عملگر | در کمترین حالت، حتی اگر یکی از جفت‌ بیت‌های متناظر با هم فعال باشد یا مقدار 1 داشته باشد در خروجی مقدار 1 نتیجه داده می‌شود.

کد مثال برای عملگر بیتی OR

در این بخش، مثالی از عملگر بیتی OR | در پایتون را نمایش داده‌ایم. به کدی که در ادامه آمده توجه کنید.

1x = 19      # Initialize the value of x by 19  
2y = 2        # Initialize the value of y by 2  
3#Bitwise OR operation    
4print("x | y =", x | y)  

اکنون باید کد بالا را در پایتون کامپایل کنیم. بعد از اجرای موفق عملیات کامپایل می‌توانیم این کد را اجرا کنیم. خروجی کد بالا به این صورت x | y = 19  به کاربر نمایش داده می‌شود.

عملگر بیتی NOT

به این دلیل که عملگر بیتی NOT ~  فقط با یک پارامتر کار می‌کند، تنها عملگر بیتی یگانه -یک عملوندی- است. این عملگر همه بیت‌های عدد داده شده را معکوس می‌کند تا عملیات «نقض منطقی» (Logical Negation) را بر روی آن عملوند پیاده‌سازی کند. این عملگر به‌صورت ~X  نشان داده می‌شود. در این جمله ریاضی نماد ~ برای به معنی نقض است و همیشه قبل از عملوند خود ظاهر می‌شود.

کد مثال برای عملگر بیتی ‍‍‍‍NOT

در این بخش مثالی ساده از عملکرد عملگر بیتی NOT ~ در پایتون را پیاده‌سازی کرده‌ایم. به کد این مثال در پایین توجه کنید.

1x = 43  # Initialize the value of x by 43  
2#Bitwise NOT operation    
3print("~x =", ~x)   

در ابتدا باید کد بالا را در پایتون کامپایل کنیم. بعد از اجرای موفق عملیات کامپایل می‌توانیم این کد را اجرا کنیم. خروجی کد بالا به صورت ~x = -44  نمایش داده می‌شود.

عملگر بیتی XOR

نماد عملگر بیتی XOR کاراکتر ^  است. این عملگر فقط وقتی که یکی از بیت‌ها برابر با 1  و بیت دیگر برابر با 0  باشد مقدار True  بر می‌گرداند، در غیر این‌صورت مقدار False  در خروجی نمایش داده می‌شود. توجه کنید که در کامپیوتر مقدار True برابر 1 و مقدار False برابر با 0 در نظر گرفته می‌شود.

کد مثال برای عملگر بیتی ‍‍‍XOR

در این قسمت از مطلب عملگرهای بیتی در پایتون، برای عملگر XOR ^ مثال ساده‌ای پیاده‌سازی کرده‌ایم. اعداد این مثال را خودمان به‌صورت دلخواه مشخص کردیم اما می‌توان به روش‌های مختلف، مانند داده ورودی از کاربر هم دریافت کرد. به کدی که در ادامه آمده توجه کنید.

1x = 12     # Initialize the value of x by 12  
2y = 6       # Initialize the value of y by 6  
3#Bitwise XOR operation    
4print("x ^ y =", x ^ y)    

در ابتدای کار باید کد نوشته شده بالا را کامپایل کنیم. بعد از اجرای موفق عملیات کامپایل در پایتون، کد را اجرا می‌کنیم. خروجی کد بالا به صورت x ^ y = 10  نمایش داده می‌شود.

عملیات شیفت به راست

به عنوان نتیجه‌ این عملیات، همه بیت‌های عدد به‌صورت مجزا به سمت راست شیفت داده می‌شوند و فضای خالی سمت چپ با 0 پُر می‌شود. البته اگر عدد منفی باشد این فضای خالی با مقدار 1 پُر می‌شود. نتیجه‌ای که از اجرای این عملیات حاصل می‌شود به شکل تقسیم شدن عملوند بر عدد 2 است. توجه کنید که نماد >>  برای نمایش این عملگر استفاده می‌شود و عدد سمت چپ را به تعداد مشخص شده در عملوند سمت راست به سمت راست شیفت می‌دهد.

مثال برای عملگر بیتی شیفت به راست

ادامه مطلب را با بررسی مثال ساده‌ای از عملگر بیتی شیفت به راست >> پی می‌گیریم. در این مثال هم از عدد مثبت و هم از عدد منفی استفاده کرده‌ایم. کدهای پایتون مربوط به این مثال را در ادامه می‌بینید.

1x = 104     # Initialize the value of x by 104  
2y = -104    # Initialize the value of x by -104  
3#Bitwise right shift operator    
4print("x >> 1 =", x >> 3)    
5print("y >> 1 =", y >> 3)    

برای ادامه کار باید کد نوشته شده در بالا را کامپایل کنیم و سپس بعد از اجرای موفق عملیات کامپایل در پایتون می‌توانیم کد را اجرا کنیم. خروجی کد بالا به صورت زیر نمایش داده می‌شود.

x >> 1 = 13
y >> 1 = -13

عملیات شیفت به چپ

نماد عملگر عملیات شیفت به چپ بیتی <<  است. عملگر << دو عملوند جدا دارد. عملگر << عملوند سمت چپ را به تعداد مشخص شده در عملوند سمت راست به سمت چپ شیفت می‌دهد. در اثر اجرای این عملیات، همه بیت‌های عدد صحیح به‌صورت مجزا به سمت چپ حرکت می‌کنند و فضاهای خالی ایجاد شده در سمت راست با مقدار 0 پُر می‌شوند. نتیجه اجرای این عملیات شبیه به ضرب کردن یک مقدار در عدد 2 است.

کد مثال برای عملگر بیتی شیفت به چپ

مطلب را با بررسی مثال ساده‌ای از عملگر بیتی شیفت به چپ در پایتون با نماد << ادامه می‌دهیم. در این مثال نیز، هم از عدد مثبت و هم از عدد منفی استفاده کرده‌ایم. کدهای مربوط به این مثال را در ادامه می‌بینید.

1x = 52    # Initialize the value of x by 52  
2y = -15  # Initialize the value of y by -15  
3#Bitwise left shift operator    
4print("x << 1 =", x << 1)    
5print("y << 1 =", y << 1)    

برای ادامه کار ابتدا کد نوشته شده در بالا را در پایتون کامپایل می‌کنیم. بعد از اجرای موفق عملیات کامپایل می‌توان این کد را اجرا کرد.

یک نفر در حال کر با کامپیوتری بسیار قدیمی است

خروجی کد بالا به صورت زیر نمایش داده می‌شود.

x << 1 = 104
y << 1 = -30

اجرای همه عملگرها در یک کد

در این بخش کدی پیاده‌سازی کرده‌ایم که همه عملگرهای بیتی را در خود جای داده‌ است. در این کد مقادیر عملوندها توسط کاربر ارسال می‌شوند. سپس به‌صورت کامل همه عملگرهای بیتی بر روی آن مقادیر اجرا خواهند شد. نتیجه این اجرا هم به‌صورت شفاف بر روی خروجی مانیتور کاربر نمایش داده می‌شود. می‌توانید این کد را بر روی سیستم خودتان کپی کرده و با اجرای این کد تفاوت را در نتیجه کار همه عملگرها ببینید.

1x = int(input("Enter the value of x: "))    # Taking user input for x  
2y = int(input("Enter the value of y: "))    # Taking user input for y  
3print("x & y =", x & y)    
4print("x | y =", x | y)    
5print("~y =", ~ y)    
6print("x ^ y =", x ^ y)   
7print("x >> 1 =", x >> 3)    
8print("y >> 1 =", y >> 3)    
9print("x << 1 =", x << 1)    
10print("y << 1 =", y << 1)  

بعد از اجرای کد بالا با مقادیر فرضی داده شده‌ی 4 برای متغیر x  و 5 برای متغیر y  نتیجه زیر در خروجی نمایش داده می‌شود.

Enter the value of x: 4
Enter the value of y: 5
x & y = 4
x | y = 5
~y = -6
x ^ y = 1
x >> 1 = 0
y >> 1 = 0
x << 1 = 8
y << 1 = 10

سربارگذاری عملگرهای بیتی

«سربارگذاری عملگر» (Operator Overloading) به این معنی است که به عملگری وظیفه‌ای بیش از وظیفه تعیین شده پیش‌فرض،‌اختصاص بدهیم. به عنوان مثال عملگر +  برای جمع بستن دو عدد همین‌طور خوب عمل می‌کند که برای اتصال دو رشته، این عملگر به همین‌سان می‌تواند دو لیست را نیز با یکدیگر ادغام کند. فعالیت‌های گفته شده به این دلیل قابل اجرا هستند که عملگر + توسط کلاس «int» و کلاس «str» سربارگذاری شده است. احتمالا متوجه شده‌اید که گاهی اوقات عملگر یا تابع «درونی» (Built-In) یکسانی در مواجه با اشیا کلاس‌های مختلف، رفتار متفاوتی را از خود بروز می‌دهد. به این اتفاق «سربارگذاری عملگر» (Operator Overloading) می‌گویند.

در کد پیاده‌سازی شده پایین مثال ساده‌ای از سربارگذاری عملگر را بر روی عملگرهای بیتی مشاهده می‌کنید. کد این مثال کمی طولانی به‌نظر می‌رسد، برای اینکه در مثال پایین، همه عملگرهای بیتی را یک‌به‌یک در کنار هم سربارگذاری یا Overload کرده‌ایم. هر کدام از این توابع به‌صورت مجزا قابل استفاده هستند. حتما به کلمه‌های کلیدی و نام‌های توابع دقت کنید.

1# Python program to demonstrate
2# operator overloading
3
4
5class Geek():
6	def __init__(self, value):
7		self.value = value
8
9	def __and__(self, obj):
10		print("And operator overloaded")
11		if isinstance(obj, Geek):
12			return self.value & obj.value
13		else:
14			raise ValueError("Must be a object of class Geek")
15
16	def __or__(self, obj):
17		print("Or operator overloaded")
18		if isinstance(obj, Geek):
19			return self.value | obj.value
20		else:
21			raise ValueError("Must be a object of class Geek")
22
23	def __xor__(self, obj):
24		print("Xor operator overloaded")
25		if isinstance(obj, Geek):
26			return self.value ^ obj.value
27		else:
28			raise ValueError("Must be a object of class Geek")
29
30	def __lshift__(self, obj):
31		print("lshift operator overloaded")
32		if isinstance(obj, Geek):
33			return self.value << obj.value
34		else:
35			raise ValueError("Must be a object of class Geek")
36
37	def __rshift__(self, obj):
38		print("rshift operator overloaded")
39		if isinstance(obj, Geek):
40			return self.value >> obj.value
41		else:
42			raise ValueError("Must be a object of class Geek")
43
44	def __invert__(self):
45		print("Invert operator overloaded")
46		return ~self.value
47
48
49# Driver's code
50if __name__ == "__main__":
51	a = Geek(10)
52	b = Geek(12)
53	print(a & b)
54	print(a | b)
55	print(a ^ b)
56	print(a << b)
57	print(a >> b)
58	print(~a)

خروجی حاصل از اجرای کد بالا به‌صورت زیر به کاربر نمایش داده می‌شود.

And operator overloaded
8
Or operator overloaded
14
Xor operator overloaded
8
lshift operator overloaded
40960
rshift operator overloaded
8
Invert operator overloaded
-11

عملگرهای بیتی چه کاربردی دارند؟

عملگرهای بیتی در پایتون برای اجرای عملیات در سطح بیت‌های اعداد صحیح به‌کار برده می‌شوند. این عملگرها در فیلدهای مختلف و مهمی از حوزه برنامه‌نویسی به‌کار گرفته می‌شوند. برای نام بردن از چند نمونه از کاربردهای عملگرهای بیتی می‌توان به گزینه‌های زیر اشاره کرد.

  • «فشرده‌سازی داده‌ها» (Data Compression)
  • «رمزگذاری» (Encryption)
  • «پردازش تصویر» (Image Processing)
  • کار با شبکه‌های کامپیوتری از قبیل ساخت و نگهداری شبکه‌ها
  • برنامه‌نویسی «میکروکنترلر» (Microcontroller)
  • برنامه‌نویسی گرافیکی

در ادامه هر کدام از کاربردهای نام‌برده شده در بالا برای عملگرهای بیتی را توضیح داده‌ایم.

  • فشرده‌سازی داده‌ها:‌ با دستکاری کردن بیت‌های تشکیل دهنده اعداد صحیح، عملگرهای بیتی برای «فشرده‌سازی داده‌ها» (Data Compression) استفاده می‌شوند. استفاده از عملگرهای بیتی مانند OR و AND تعداد بیت‌های مورد نیاز برای ذخیره‌سازی داده‌ها را کاهش می‌دهد.
  • رمزگذاری: عملگرهای بیتی با کار بر روی بیت‌های اعداد صحیح برای رمزگذاری داده‌ها نیز قابل استفاده‌اند. با کمک استفاده از عملگر بیتی مانند XOR داده‌ها می‌توانند به متن رمزگذاری شده تبدیل شوند که امنیت بیشتری دارد.
  • پردازش تصویر: در رشته پردازش تصویر عملگرهای بیتی در پایتون برای کار بر روی پیکسل‌های تشکیل دهنده تصاویر استفاده می‌شوند. با استفاده از عملگرهای بیتی مانند AND و OR و XOR تکنیک‌های مختلفی در پردازش تصویر مانند ماسک کردن، «ترکیب» (Blending) و Thresholding قابل پیاده‌سازی هستند.
  • «کار با شبکه‌های کامپیوتری» (Networking): عملگرهای بیتی می‌توانند در برنامه‌های مربوط به شبکه نیز استفاده شوند. به عنوان مثال از این عملگرها در کار با آدرس‌های IP و تنظیمات Subnet Mask استفاده می‌شود. با استفاده از عملگرهای بیتی مانند AND و OR و XOR می‌توانیم بر روی آدرس‌ IP و تنظیمات Subnet Mask برای تعیین محدوده شبکه کار کنیم. با کمک این عملگرها حتی می‌توانیم عملیاتی برای فیلتر کردن آدرس IP نیز اجرا کنیم.
  • برنامه‌نویسی Microcontroller: در برنامه‌نویسی Microcontroller، عملگرهای بیتی را می‌توان برای کنترل عملیات لوازم جانبی سخت‌افزاری به‌کار گرفت. برای مثال، با استفاده از عملگرهای بیتی مانند OR و AND می‌توان عملیات اجرا شده توسط لوازم سخت‌افزاری را کنترل و رصد کرد.
  • برنامه‌نویسی گرافیکی: عملگرهای بیتی برای کار در برنامه‌نویسی گرافیکی به‌کار می‌روند. برای مثال، به کمک این عملگرها می‌توان پیکسل‌های تصاویر را دستکاری کرد. با استفاده از عملگرهای بیتی مانند XOR می‌توان تصاویر را از لحاظ زیبایی به سطح خوشایندتری ارتقا داد.

در نهایت در نظر داشته باشید که برای بررسی بهتر این کاربردها بهتر است که در فضای مربوط به هر کدام قرار بگیرید. فیلم‌ آموزشی مربوط به آموزش پردازش و طبقه بندی تصاویر پزشکی فرادرس گوشه کوچکی از استفاده از این عملگرهای بیتی را در سطح بالاتری نشان می‌دهد. البته برای شروع به کار با عملگر‌ها تماشای فیلم رایگان، کوتاه و بسیار مفید مهمترین دستورات زبان پایتون در فرادرس را به شما پیشنهاد می‌دهیم.

آموزش های تکمیلی پایتون

وقتی که مهارت‌های خود را در زبان برنامه‌نویسی پایتون در حد مناسبی ارتقا دادیم، قبل از ورود به بازار کار بهترین کار پیدا کردن کاستی‌های مهارتی خودمان است. برای اینکه متوجه شویم چه بخش‌هایی از دانش برنامه‌نویسی‌مان نیاز به مطالعه و تمرین بیشتر دارد، می‌توانیم دوره‌های حرفه‌ای تر را بررسی کنیم. بنابراین قدم بعدی، آماده‌سازی خود به منظور ورود به دنیای برنامه‌نویسی متناسب با بازار کار خواهد بود. برای ورود به این بخش چند مورد از فیلم‌های آموزشی تخصصی فرادرس را به شما پیشنهاد می‌دهیم.

مجموعه آموزش پایتون از مقدماتی تا پیشرفته

جمع بندی

برای جمع‌بندی این مطلب باید بدانیم که داشتن دانش کافی درباره عملگرهای بیتی در پایتون برای هر برنامه‌نویسی ابزار بسیار ارزشمندی است. عملگرهای بیتی روش‌های کارآمدی را برای کار با داده‌ها در سطح باینری فراهم می‌کنند. این عملگرها می‌توانند کدهای برنامه‌نویسان را در مسیر درست قرار دهند، زمان پردازش را کاهش دهند و در نهایت کارایی برنامه را در حد قابل توجهی ارتقا دهند.

با تسلط به این عملگرها، می‌توانید توانایی‌های جدیدی در خود برای کار در رشته‌هایی مثل تحلیل داده، برنامه‌نویسی شبکه و غیره ایجاد کنید. در این مطلب از مجله فرادرس با انواع عملگرهای بیتی و شکل مرکب این عملگرها آشنا شدیم. برای هر کدام حداقل یک مثال پیاده‌سازی شده دیدیم و در نهایت روش Overload کردن این عملگرها را نیز بررسی کردیم. با مطالعه کاربردهای مختلفی که این عملگرها در دنیای واقعی برنامه‌نویسی دارند حتما خواهید توانست در رشته مورد نظر خود نیز از توانایی این عملگرها استفاده کنید.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
JavatpointGeeksforGeekspythonfloodPrepBytes
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *