با مطالعهی دو فصل گذشته علاوه بر اجرای محیط نرمافزاری ویژوال استودیو به معرفی انواع داده در زبان برنامهنویسی سی شارپ پرداختیم. در صورتیکه دو فصل گذشته را مطالعه نکردهاید از طریق این لینک وارد صفحه دوره آموزشی سی شارپ شده و تمام آموزشها را یکجا مطالعه بفرمایید. در این فصل میخواهیم به توضیح علمگرهای ریاضیاتی در زبان برنامهنویسی C# بپردازیم.
عملگرها در زبان برنامهنویسی به عنوان سمبلهایی هستند که به کامپایلر اطلاع میدهند عملیات ریاضیاتی خاصی را انجام دهد. زبان برنامهنویسی سی شارپ مجموعهای از علمگرهای توکار (ساخته شده توسط خود زبان و شرکت ماکروسافت) را ارائه میدهد که در تقسیمبندی زیر قرار میگیرند:
با ارائهی یک مثال کاربردی این عملگر را توضیح خواهیم داد. فرض کنید مقدار A برابر ۱۰ و مقدار B برابر ۲۰ است آنگاه داریم:
Operator Description Example + جمع A + B = 30 - تفریق A - B = -10 * ضرب A * B = 200 / تقسیم B / A = 2 % باقیماندهی تقسیم B % A = 0 ++ یک واحد افزایش A++ = 11 -- یک واحد کاهش A-- = 9
Operator Description Example == تساوی دو مقدار (A == B) is not true. != عدم تساوی دو مقدار (A != B) is true. > بزرگتر (A > B) is not true. < کوچکتر (A < B) is true. >= بزرگتر مساوی (A >= B) is not true. <= کوچکتر مساوی (A <= B) is true.
Operator Description Example && AND (A && B) is false. || OR (A || B) is true. ! مخالف AND = OR !(A && B) is true.
این عملگرها روی بیتها اعمال میشود و مشابه عملگرهای منطقی است فرض کنید دو بیت داریم به صورت ۰ و ۱ بنابراین برای جدول درستی آنها داریم:
p q p & q p | q p ^ q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1
برای اینکه یک مثال کاربردی تر خدمت شما عزیزان ارائه دهیم تصور کنید که A=60 و B=13 باشد آنگاه شکل باینری این دو عدد به همراه عملگرهای بیتی آن به صورت زیر خواهد بود:
A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011
همچنین در جدول زیر به صورت کامل این عملگرها را توضیح میدهیم. فرض کنید A=60 و B=13 آنگاه:
Operator Description Example & AND (A & B) = 12, which is 0000 1100 | OR (A | B) = 61, which is 0011 1101 ^ XOR (A ^ B) = 49, which is 0011 0001 (بیتهای یکسان صفر و بیتهای متفاوت ۱ هستند) ~ مخالف (~A ) = 61, which is 1100 0011 (مقادیر ۰ برابر ۱ و مقادیر ۱ برابر ۰ هستند) << انتقال بیت به چپ A << 2 = 240, which is 1111 0000 >> انتقال بیت به راست A >> 2 = 15, which is 0000 1111
Operator Description Example = تساوی C = A + B مقدار C = مجموع A+B += جمع تساوی C += A برابر است با C = C + A -= تفریق تساوی C -= A برابر است با C = C - A *= ضر ب تساوی C *= A برابر است با to C = C * A /= تقسیم تساوی C /= A برابر است با to C = C / A %= باقیمانده تساوی C %= A برابر است با to 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 |= دستور OR مساوی C |= 2 برابر است با C = C | 2
گاهی برخی عملگرها در زبان سی شارپ به صورت تابع یا متد مورد استفاده قرار میگیرند که مطالعهی آنها خالی از لطف نیست. برخی از آنها عبارتند از:
Operator Description Example sizeof() دستیابی به سایز یک داده sizeof(int), returns 4. typeof() دستیابی به نوع یک داده typeof(StreamReader); & دستیابی به آدرس یک متغییر &a; returns actual address of the variable. * اشاره به یک متغییر *a; creates pointer named 'a' to a variable. ? : عبارت شرطی IF If Condition is true ? Then value X : Otherwise value Y is مشخص کردن اینکه یک شیء شامل یک نوع خاص است یا نه If( Ford is Car) // checks if Ford is an object of the Car class.
حال که عملگرهای زبان برنامهنویسی C# را فراگرفتید بهتر است اولویت این عملگرها را بدانیم یعنی اگر داخل یک عبارت مجموعهای از این عملگرها قرار گرفت ابتدا کدامیک محاسبه میشوند:
Category Operator Associativity پسوندی () [] -> . ++ - - Left to right محاسباتی جمع تفریق + - ! ~ ++ - - (type)* & sizeof Right to left ضرب و تقسیم * / % Left to right جمع و تفریق + - Left to right انتقال << >> Left to right رابطهای < <= > >= Left to right تساوی == != Left to right AND & Left to right XOR ^ Left to right OR | Left to right AND منطقی && Left to right OR منطقی || Left to right شرطی ?: Right to left انتسابی = += -= *= /= %=>>= <<= &= ^= |= Right to left کاما , Left to right
بسیار عالی! در این فصل با عملگرهای زبان برنامهنویسی C# آشنایی کامل پیدا کردید. این عملگرها در طول برنامهی شما بسیار کاربردی بوده و همواره مورد استفاده قرار میگیرند لذا در فراگیری آنها دقت عمل به خرج دهید. در فصل بعدی به توضیح دستورهای تصمیمگیری شرطی و کنترلی میپردازیم. با ما همراه باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.