عملگر ها در سی شارپ (#C)

در مقالات قبل با زبان سی شارپ و مفاهیم مقدماتی در این زبان آشنا شدیم. در این بخش از آموزش قصد داریم با عملگر ها در سی شارپ (#C) بیشتر آشنا شویم. عملگر در واقع یک نماد یا symbol است که به کامپایلر می فهماند باید عملیات خاصی انجام شود. عملگر ها در سی شارپ (#C) در دسته های مختلف تقسیم بندی می شوند که در ادامه به بررسی این متغیرها می پردازیم.

انواع عملگر ها در سی شارپ (#C) عبارتند از:

  • عملگر های حسابی (Arithmetic operators)
  • عملگر های رابطه ای (Relational operators)
  • عملگر های منطقی (Logical operators)
  • عملگر های بیتی (Bitwise operator)
  • عملگر های انتسابی (Assignment operators)
  • عملگر های (Misc operators) misc

عملگر های حسابی:

انواع عملگر های حسابی به همراه توضیح و مثال در جدول زیر ذکر شده است. در تمامی مثال های این جدول فرض کردیم: A = 10  و B = 20 باشد.

عملگر توضیح مثال
+ حاصل جمع دو عدد را محاسبه می کند. A + B = 30
حاصل تفریق دو عدد را محاسبه می کند. A – B = -10
* حاصل ضرب دو عدد را محاسبه می کند. A * B = 200
/ حاصل تقسیم دو عدد را محاسبه می کند. B / A = 2
% حاصل باقیمانده دو عدد را محاسبه می کند. B % A = 0
++ یک واحد به مقدار عدد صحیح اضافه می کند. A++ = 11
یک واحد از مقدار عدد صحیح کم می کند. A– = 9

عملگر های رابطه ای:

در جدول زیر عملگر های رابطه ای به همراه توضیح و مثال ذکر شده است. در تمامی مثال های این جدول فرض کردیم: A = 10  و B = 20 باشد.

عملگر توضیح مثال
== بررسی می کند آیا مقدار دو عملوند یکسان است یا خیر؟ درصورت یکسان بودن نتیجه true و در غیر اینصورت false خواهد بود. A == B نتیجه false خواهد بود
=! بررسی می کند آیا مقدار دو عملوند یکسات است یا خیر؟ درصورت یکسان نبودن نتیجه true و در غیر اینصورت false خواهد بود. A != B نتیجه true خواهد بود.
بررسی می کند آیا عملوند سمت چپ بزرگ تر از عملوند سمت راست است یا خیر؟ در صورت بزرگ تر بودن عملوند سمت چپ نتیجه true و در غیر اینصورت false خواهد بود. A > B نتیجه false خواهد بود.
بررسی می کند آیا عملوند سمت چپ کوچک تر از عملوند سمت راست است یا خیر؟ درصورت کوچک تر بودن عملوند سمت چپ نتیجه true و در غیر اینصورت false خواهد بود. A < B نتیجه true خواهد بود.
>= بررسی می کند آیا عملوند سمت چپ بزرگ تر یا مساوی است یا خیر؟ در صورت بزرگ تر یا مساوی بودن عملوند سمت چپ نسبت به عملوند سمت راست نتیجه true و در غیر اینصورت false خواهد بود. A >= B نتیجه false خواهد بود.
<= بررسی می کند آیا عملوند سمت چپ کوچک تر یا مساوی است یا خیر؟ در صورت کوچک تر یا مساوی بودن عملوند سمت چپ نسبت به عملوند سمت راست نتیجه true و در غیر اینصورت false خواهد بود. A <= B نتیجه true خواهد بود

عملگر های منطقی:

در جدول زیر عملگر های منطقی به همراه توضیح و مثال شرح داده شده اند. در تمامی مثال های این جدول فرض کردیم: A = true و B = false باشد.

عملگر توضیح مثال
&& عملگر AND منطقی درصورتی که مقدار هر دو عملوند مخالف صفر باشد نتیجه true و در غیراینصورت false خواهد بود. A && B نتیجه false خواهد بود زیرا B = false است.
|| عملگر OR منطقی درصورتی که حداقل یکی از دو عملوند مخالف صفر باشد نتیجه true و در غیر اینصورت false خواهد بود. A || B نتیجه true است زیرا A = true است.
! عملگر NOT منطقی برای معکوس کردن مقدار یک عملوند از این عملگر استفاده می شود. !A = false !B = true !(A&&B) = true

عملگر های بیتی:

عملگر های بیتی تنها روی یک بیت اعمال می شوند. جدول درستی برای دو عملوند p و q بصورت زیر است:

p ^ q p | q p & q q p
0 0 0 0 0
1 1 0 1 0
0 1 1 1 1
1 1 0 0 1

مثالی از عملگر های بیتی (bitwise):

فرض کنید:

A = 0011 1100 یا A = 60

B = 0000 1101 یا B = 13

در این حالت داریم:

A & B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~A = 1100 0011

عملگر شیفت به چپ باینری:

این عملگر با علامت >> مشخص می شود. برای مثال داریم:

A << 2   => 240   => 1111 0000

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

این عملگر با علامت >> مشخص می شود. برای مثال داریم:

A >> 2   => 15   => 0000 1111

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

انواع عملگر های انتساب به همراه توضیح و مثال در جدول زیر شرح داده شده اند.

عملگر توضیح مثال
= مقدار سمت راست را به سمت چپ انتساب می دهد. C = A + B حاصل جمع A و B را در C قرار می دهد.
+= عملگر جمع و انتساب، مقدار سمت راست و چپ را جمع زده و حاصل را در سمت چپی قرار می دهد. C += A معادل C = C + A
-= عملگر تفریق و انتساب، مقدار سمت چپ و راست را از هم کم کرده و مقدار حاصل را در سمت چپی قرار می دهد. C -= A معادل C = C – A
*= عملگر ضرب و انتساب، مقدار سمت راست و چپ را در هم ضرب کرده و حاصل را در سمت چپی قرار می دهیم. C *= A معادل C = C * A
=/ عملگر تقسیم و انتساب، حاصل تقسیم مقادیر سمت چپ و راست را در سمت چپی قرار می دهد. C /= A معادل C = C / A
=% عملگر باقیمانده و انتساب، حاصل باقیمانده عملوند سمت چپ نسبت به راست را در عملوند سمت چپی قرار می دهد. C %= A معادل C = C % A
<<= عملگر شیفت به چپ و انتساب C <<= 2 معادل C = C << 2
>>= عملگر شیفت به راست و انتساب C >> 2 معادل C = C >> 2
=& عملگر بیتی AND و انتساب C &= 2 معادل C = C & 2
=^ عملگر XOR  (یا انحصاری) بیتی و انتساب C ^= 2 معادل C = C ^ 2
=| عملگر بیتی XOR و انتساب C ||= 2 معادل C = C || 2

عملگر های miscellaneous

مثال هایی از این نوع عملگر ها:

sizeOf(int)   => 4

که سایز یک نوع داده را بر می گرداند.

typeOf(StreamReader)

که نوع یک کلاس را بر می گرداند.

?:

عبارت شرطی است، درصورتی که true باشد مقدار اول و در غیر اینصورت مقدار دوم را بر می گرداند.

اولویت عملگر ها در سی شارپ (C#)

اولویت عملگر ها یا به عبارتی تقدم برخی عملگر ها نسبت به دیگری باید در محاسبات در نظر گرفته شود.

تقدم عملگر ها در مقدار محاسبه شده ی یک عبارت تاثیرگذار است. برخی عملگر ها نسبت به برخی دیگر اولویت دارند. برای مثال اولویت عملگر ضرب بیشتر از عملگر جمع است.

برای مثال در عبارت زیر داریم:

X = 7 + 3 * 2

حاصل عبارت بالا 13 است نه 20.

درصورتی که تقدم در نظر گرفته نشود حاصل عبارت 20 می شود. زیرا ابتدا مقدار 3 + 7 محاسبه می شود و سپس 2 * 10، در نتیجه مقدار X = 20 می شود.

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

  • postfix
  • unary*
  • multiplicative
  • addititve
  • shift
  • relational
  • equality
  • bitwise and
  • bitwise xor
  • bitwise or
  • logical and
  • logical or
  • conditional*
  • assignment*
  • comma

در تمامی عملگر های بالا به جز موارد ستاره دار (*) جهت شرکت پذیری چپ به راست است. در موارد ستاره دار (*) جهت شرکت پذیری راست به چپ است.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخی بگذارید

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