آردوینو – عملگر ها

عملگر سمبل است که به کامپایلر می گوید که عملکرد های خاص ریاضی یا منطقی را انجام دهد. زبان C غنی از عملگر های داخلی است و انواع عملگر های زیر را در اختیار شما قرار می دهد :

  • عملگر های حساب
  •  عملگر های مقایسه
  • عملگر های Boolean
  • عملگر های بیتی
  • عملگر های مرکب

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

فرض کنید متغیر A دارای مقدار 10 باشد و متغیر B  دارای مقدار 20 آن گاه :

نام عملگر نماد عملگر توضیحات مثال
واگذاری یا انتساب = مقداری را که در متغیر سمت راست علامت مساوی قرار دارد ، در متغیر در سمت چپ مساوی ذخیره می کند. (مقدار متغیر B  را داخل متغیر A می ریزد ) A = B
جمع + جمع دو متغیر A + B

خواهد داد 30

منها مقدار متغیر دوم را از متغیر اول کم می کند. (متغیر B را از متغیر A کم می کند) A – B

خواهد داد 10

ضرب * ضرب دو متغیر (متغیر A را در متغیر B  ضرب می کند) A * B

خواهد داد 200

تقسیم / تقسیم عدد بر مخرج (تقسیم کردن متغیر B  بر متغیر A) B / A

خواهد داد 2

مدول % عملگر مدول و باقی مانده پس از تقسیم عدد صحیح (باقی مانده تقسیم متغیر B بر متغیر A را نمایش می دهد) B % A

خواهد داد 0

مثال :

void loop () {
   int a = 9,b = 4,c;
   c = a + b;
   c = a - b;
   c = a * b;
   c = a / b;
   c = a % b;
}

نتایج :

a + b = 13
a - b = 5
a * b = 36
a / b = 2
باقیمانده وقتی تقسیم شود b = 1

 عملگر های مقایسه:

فرض کنید متغیر A دارای 10 باشد و متغیر B دارای 20 باشد ، آن گاه :

نام عملگر نماد عملگر توضیحات مثال
مساوی با == بررسی می کند که آیا ارزش دو متغیر برابر است یا نه ، اگر بله ، شرط درست می شود.

(A == B)

is not true

نامساوی با != بررسی می کند که اگر ارزش دو متغیر برابر باشد یا خیر ، اگر مقادیر مساوی نباشند ، شرط درست می شود. (A != B)

is true

کمتر از < بررسی می کند که اگر مقدار متغیر سمت چپ کمتر از مقدار متغیر سمت راست باشد ، اگر بله ، این شرط درست می شود. (A < B)

is true

بیشتر از > بررسی می کند که اگر مقدار متغیر سمت چپ بیشتر از مقدار متغیر سمت راست باشد ، اگر بله ، این شرط درست می شود. (A > B)

is not true

کمتر یا مساوی با <= بررسی می کند که اگر مقدار متغیر سمت چپ کمتر یا مساوی با مقدار متغیر سمت راست باشد ، اگر بله ، شرط آن درست می شود. (A <= B)

is true

بیشتر یا مساوی با >= بررسی می کند که اگر ارزش متغیر سمت چپ بزرگتر یا مساوی با مقدار متغیر سمت راست باشد ، اگر بله ، شرط صحیح می شود. (A >= B)

is not true

مثال :

void loop () { 
   int a = 9,b = 4
   bool c = false;
   if(a == b)
      c = true;
   else
      c = false;

   if(a != b)
      c = true;
   else
      c = false;
   
   if(a < b)
      c = true;
   else
      c = false;
   
   if(a > b)
      c = true;
   else
      c = false;
   
   if(a <= b)
      c = true;
   else
      c = false;
   
   if(a >= b)
      c = true;
   else
      c = false;
}

نتایج :

c = false
c = true
c = false
c = true
c = false
c = false

عملگر های Boolean :

فرض کنید متغیر A دارای 10 باشد و متغیر B دارای 20 باشد ، آن گاه :

نام عملگر نماد عملگر توضیحات مثال
and && عملگر and منطقی نامیده می شود. اگر هر دو متغیر غیر صفر باشند ، پس شرط درست می شود. (A && B) is true
or || عملگر or منطقی نامیده می شود. اگر هر یک از دو متغیر غیر صفر باشند ، آنگاه شرایط درست می شود. (A || B) is true
not ! عملگر not منطقی نامیده می شود. برای معکوس کردن وضعیت منطقی متغیر از آن استفاده کنید. اگر یک شرط صحیح باشد ، عملگر NOT  منطقی ، نادرست آن را خواهد ساخت.

(A && B)! is false

مثال :

void loop () {
   int a = 9,b = 4
   bool c = false;
   if((a > b)&& (b < a))
      c = true;
   else
      c = false;

   if((a == b)|| (b < a))
      c = true;
   else
      c = false;

   if( !(a == b)&& (b < a))
      c = true;
   else
      c = false;
}

نتایج :

c = true
c = true
c = true

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

فرض کنید متغیر A دارای 60 باشد و متغیر B دارای 13 باشد ، آن گاه :

نام عملگر نماد عملگر توضیحات مثال
and & عملگر and باینری ، بیت های دو متغیر را نظیر به نظیر در هم ضرب می کند. (A & B)

خواهد داد 12 که می شود 0000 1100

or | عملگر or باینری ، بیت های دو متغیر را نظیر به نظیر با هم جمع می کند. (A | B)

خواهد داد 61 که می شود 0011 1101

xor ^ عملگر xor باینری ، بیت های دو متغیر را نظیر به نظیر با هم xor می کند. (A ^ B)

خواهد داد 49 که می شود 0011 0001

not ~ not ، عملگر مکمل باینری است و تأثیر “flipping” بر روی بیت های متغیر دارد. (یعنی بیت یک را صفر می کند و بیت صفر را یک می کند.) (~A )

خواهد داد -60 که می شود 1100 0011

شیفت به چپ << عملگر شیفت به چپ باینری ، به تعداد عدد مشخص شده ، بیت های متغیر در حالت باینری را به سمت چپ منتقل می کند. (یعنی بیت ها از بیت های با ارزش بالا تر به سمت بیت های با ارزش پایین تر منتقل می شوند) A << 2

خواهد داد 240 که می شود 1111 0000

شیفت به راست >> عملگر شیفت به راست باینری ، به تعداد عدد مشخص شده ، بیت های متغیر در حالت باینری را به سمت راست منتقل می کند. (یعنی بیت ها از بیت های با ارزش پایین تر به سمت بیت های با ارزش بالا تر منتقل می شوند) A >> 2

خواهد داد 15 که می شود 0000 1111

مثال :

void loop () {
   int a = 10,b = 20
   int c = 0;
   c = a & b ;
   c = a | b ;
   c = a ^ b ;
   c = a ~ b ;
   c = a << b ;
   c = a >> b ; 
}

نتایج :

c = 12
c = 61
c = 49
c = -60
c = 240
c = 15

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

فرض کنید متغیر A دارای 10 باشد و متغیر B دارای 20 باشد ، آن گاه :

نام عملگر نماد عملگر توضیحات مثال
افزایش ++ عملگر افزایش ، یک عدد صحیح را به میزان یک واحد افزایش می دهد . A++ خواهد داد 11
کاهش عملگر کاهش ، یک عدد صحیح را به میزان یک واحد کاهش می دهد . A– خواهد داد 9
بعلاوه ترکیب += عملگر بعلاوه و مساوی ، متغیر راست را به متغیر چپ اضافه می کند و نتیجه را به متغیر سمت چپ اختصاص می دهد. B += A معادل است با B = B+ A
منهای ترکیب -= عملگر منها و مساوی ، متغیر راست را از متغیر چپ کم می کند و نتیجه را به متغیر سمت چپ اختصاص می دهد. B -= A معادل است با B = B – A
ضرب در ترکیب *= عملگر ضرب و مساوی ، متغیر راست را با متغیر چپ ضرب می کند و نتیجه را به متغیر سمت چپ اختصاص می دهد. B*= A معادل است با B = B* A
تقسیم بر ترکیب /= عملگر تقسیم و مساوی ، متغیر راست را بر متغیر چپ تقسیم می کند و نتیجه را به متغیر سمت چپ اختصاص می دهد. B /= A معادل است با B = B / A
مدولِ ترکیب %= عملگر مدول و مساوی ، عملیات مدول کردن متغیر راست و متغیر چپ را انجام می دهد و نتیجه را به متغیر سمت چپ اختصاص می دهد. B %= A معادل است با B = B % A
or باینری ترکیب |= عملگر OR باینری و مساوی ، بیت های دو متغیر را نظیر به نظیر با هم جمع می کند و به متغیر سمت چپ اختصاص می دهد. A |= 2 یکسان است با A = A | 2
and باینری ترکیب &= عملگر AND باینری و مساوی ، بیت های دو متغیر را نظیر به نظیر در هم ضرب می کند و به متغیر سمت چپ اختصاص می دهد. A &= 2 یکسان است با A = A & 2

 

مثال :

void loop () {
   int a = 10,b = 20
   int c = 0;
   
   a++;
   a--;
   b += a;
   b -= a;
   b *= a;
   b /= a;
   a %= b;
   a |= b;
   a &= b;
}

نتایج :

a = 11
a = 9
b = 30
b = 10
b = 200
b = 2
a = 0
a = 0
a = 30

منبع : https://b2n.ir/417403

مطالعه بیشتر