عملگرها در زبان ++C


ناصر نادری 1395/11/06

بنام خدا . سلام خدمت دوستان .

در ادامه سری آموزشی زبان برنامه نویسی++C  در خدمتتون هستیم با مبحث  عملگرها در این زبان.

اول از همه یه تعریف از عملگر بکنیم و اون اینکه : یک عملگر یا اپراتور (Operator) در هر زبانی حتی  خارج ازدنیای برنامه نویسی یک  نماد قراردادی، برای اجرای یک عمل خاص (اعمال ریاضی و ... )  روی یک یا دو عملوند و ایجاد خروجی جدید از این عملوندها هست. تقریبا مثل  یک تابع عمل میکنه که عملوندها پارامترهای ورودیش هستن.

100 + 105 = 205

توی عبارت بالا 100 و 105 عملوند، + عملگر و 205 خروجی  عبارت هست.

خوب خیلیاتون اینارو میدونین ولی محض احتیاط  بهشون اشاره کردم.

انواع عملگرها در زبان ++C:

  1. عملگرهای ریاضی  Arithmetic
  2. عملگرهای رابطه ای Relational
  3. عملگرهای منطقی Logical
  4. عملگرهای بیتی Bitwise
  5. عملگرهای انتضاب Assignment
  6. عملگرهای ترکیبی Misc

عمگرهای ریاضی   در ++C :

فرض کنید :  A=10  و B=5  باشه.

  • عملگر جمع (+)  برای جمع دو عدد!!!              A+B=15
  • عملگر تفریق (-) برای تفریق دو عملوندA-B = 5    
  • عملگر ضرب (*) برای ضرب دو عملوند!!!!!!!    A*B= 50
  • عملگر تقسیم (/) برای تقسیم علوند سمت چپ بر عملوند سمت راست A/B=2
  • عملگر باقیمانده یا به اصطلاح علمی Module  (%) برای بدست آوردن باقیمانده تقسیم عدد سمت چپ به راست A%B=0
  • عملگر افزایشی (++) برای افزودن یک واحد به تنها عملوند خود  A++ و ++A هردو مجب میشه A  11  بشه
  • عملگر کاهشی (--) برای کاهش یک واحد از تنها عملوند خود  A-- و --A هردو مجب میشه  A  9  بشه

عملگرهای رابطه ای در ++C  :

نتیجه یک عملگر رابطه ای  یک حاصل درست یا غلط یا به اصطلاح True  یا False   و یا به قول زبان C 0و1 هست .

  • عملگر (==) برای تعیین تساوی دو عملوند  . مثلا  A==B  نتیجش میشه False
  • عملگر (=!) برای تعیین نا مساوی بودن دو عملوند . مثلا A!=B نتیجش میشه True
  • عملگر (<) یا بزرگتر برای تعیین اینکه عدد سمت چپ بزرگتر از سمت راستی هست یا نه A>B نتیجش True هست
  • عملگر (>) یا کوچکتر برای تعیین اینکه عدد سمت چپ کوچکتر از سمت راستی هست یا نه A<B نتیجش False هست
  • عملگر (=<) یا بزرگتر مساوی  برای تعیین اینکه عدد سمت چپ بزرگتریا مساوی سمت راستی هست یا نه A>=B نتیجش True هست
  • عملگر (=>) یا کوچکترمساوی برای تعیین اینکه عدد سمت چپ کوچکتر یا مساوی سمت راستی هست یا نه A<=B نتیجش False هست

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

برای ترکیب نتایج بدست آمده             از عملگرهای رابطه ای بصورت منطقی از این عمگرهای استفاده میشه . که در زبان خودمون میشه (و , یا , نقیض(    . مثلا اگر علی بیاید و ناصر بماند !!!!!!

 

  • عملگر (&&) یا and  منطقی برای and  کردن دو نتیجه محاسبات رابطه ای  مثلا (A>B && B<4) که میشه (True && False ) نتیجش False  هست . توی عملگر && باید هردو طرف حاصل True داشته باشند در غیر اینصورت حاصل کلی False هست.
  • عملگر (||) یا or   منطقی برای or  کردن دو نتیجه محاسبات رابطه ای  مثلا (A>B || B<4) که میشه (True || False ) نتیجش True  هست . توی عملگر || باید حداقل یک طرف حاصل True داشته باشند در غیر اینصورت حاصل کلی False هست.
  • عملگر (!) یا not منطقی که در فارسی بهش نقیض گفته میشه. برای False کردن True و بالعکس استفاده میشه.

عملگرهای بیتی در C++ :

مبحث عملگر بیتی کمی دقت لازم داره . میدونیم 1 و 0 میتونه در کامپیوتر نماد درستی و غلط یاشه. مثلا اگر بخواهیم دو عدد باینری رو(دو دو یی) با هم and یا or  یا حتی یک عدد باینری رو نقیض  کنیم  از عملگر های بیتی در این زبان استفاده میکنیم. روشنه که حاصل عمل هم 0 یا 1 خواهد بود نه True و False. همچنین عملگرهای بیتی هستن که برای  شیفت دادن کدهای 0و1 به منظور انجام محاسبات با سرعت بالا استفاده میشن.

فرض کنید A=10 , B=5  باشه.

برای فهم بهتر ابتدا هردو عدد رو به مبنای دودیی  میبریم.

A = 0000 1010

B = 0000 0101

  • عملگر بیتی (&)  برای and  کردن دو بیت باهم  A&B=0000 0000
  • عملگر بیتی (|) برای or کردن دو بیت باهم A|B=0000 1111
  • عملگر نقیض(~) برای برعکس کردن بیت ~A=0000 1111
  • عملگر (^)  or انحصاری یا xor در صورتی 1 میشه که فقط یکی از طرفین یک باشن A^B=0000 1111
  • عملگر (<<)   برای شیفت دادن به راست A>>2 بیتهای عدد A  را 2 واحد به سمت چپ شیفت میدهد.A>>2=0000 0010
  • عملگر(>>)   برای شیفت دادن به چپ   A<<2   بیتهای عدد A  را 2 واحد به سمت چپ شیفت میدهد.A<<2=0010 0000

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

برای  انجام محاسبه در سمت راست عبارت و قرار دادان آن در سمت راست از عملگرهایی انتصاب استفاده میکنیم.

  • عملگر (=) ساده ترین عملگر ریاضی برای انتصاب سمت راست به چپ
  • عملگرهای  +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=  در واقع عمل مربوطه رو بین عملوند راست و چپ انجام میدهند سپس نتیجه را در سمت چپ ذخیره میکنند :

A += B   =>  A= A+B   A = 10 + 5 => A=15

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

در زبان C++ برخی از عملگرهای مخصوص وجود داره که به ترتیب زیر هست :

  • Sizeof  برای برگرداندن اندازه یک شی یا متغییر استفاده میشه: مثال  sizeof(A)
  • & برای برگرداندن آدرس یک متغییر (مربوط به اشاره گرها)
  • * برای تعریف و استفاده از اشاره گرها
  • Condition ? X : Y که قبلا توی این بخش توضیح داده شده.
  • Cast  برای تبدیل ضمنی نوع یک متغییر int(2.2) که مقدار 2 رو برمیگردونه
  • ...

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

کامپیوتر برای محاسبه یک عبارت ریاضی اولیت هایی رو در نظر میگیره و بخشهایی از عبارت رو که اولویت بالا دارن رو اول محاسبه میکنه .

A = A + B * C – D

در عبارت بالا ابتدا B در C  ضرب میشه , سپس نتیجه با A  جمع شده منهای C  میشود.

جدول زیر اولئیت هارو نشون میده...

() [] -> . ++ - -  

از چپ به راست

+ - ! ~ ++ - - (type)* & sizeof 

از راست به چپ

* / % 

از چپ به راست

+ - 

از چپ به راست

<< >> 

از چپ به راست

< <= > >= 

از چپ به راست

== != 

از چپ به راست

از چپ به راست

از چپ به راست

از چپ به راست

&& 

از چپ به راست

|| 

از چپ به راست

?: 

از راست به چپ

= += -= *= /= %=>>= <<= &= ^= |= 

از راست به چپ

 

 

 

 

فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد
درباره نویسنده
admin
ناصر نادری
prgnaderi@hotmail.com
فوق لیسانس مهندسی نرافزار- برنامه نویس و مدرس دانشگاه
نظرات شما
نظر جدید