18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 基礎入門 >> Arduino開發學習 >> 正文

Arduino-運算符-係列4

作者:佚名    文章來源:網絡    點擊數:    更新時間:2023/11/26

前麵我們(men) 陸續介紹了Arduino的程序結構、數據類型、常量和變量,本章介紹Arduino的運算符,運算符是一個(ge) 特定的符號,它告訴計算機執行特定的數學或邏輯運算。在C語言中內(nei) 置了豐(feng) 富的運算符,包含以下類型:

  1. 算術運算符
  2. 關係運算符
  3. 邏輯運算符
  4. 位運算符
  5. 混合運算符
microcomputer 

算術運算符

算術運算符也就是常見的加減乘除、賦值運算和模數運算,詳細了解一下,我們(men) 先假設變量A的值是10,變量B的值是20:

  1. 賦值運算符:“ = ”,表示將等號右邊的值存儲在等號左邊的變量中。如:A=B。這裏注意不能理解為等於符號。
  2. 加法運算符:“ + ”,表示兩個操作數相加。如:A+B,將會得到30。
  3. 減法運算符:“ – ”,表示兩個操作數相減。如:A-B,將會得到-10。
  4. 乘法運算符:“ * ”,表示兩個操作數相乘。如:A*B,將會得到200。
  5. 除法運算符:“ / ”,表示兩個操作數相除。如:B/A,將會得到2。
  6. 模數運算符:“ % ”,表示求整數除法中的餘數。如:B%A,將得到0。

再看一個(ge) 實際例子:

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 //不計餘(yu) 數,取整數商;
a % b = 1 //餘(yu) 數是1;

關(guan) 係運算符

關(guan) 係運算符在C語言中主要起判斷的作用。同樣的,我們(men) 先假設變量A的值是10,變量B的值是20:

  1. 等於:“ == ” ,判斷兩個操作數的值是否相等,如果是,則條件為真。如:A == B,結果不為真,會返回 false;
  2. 不等於:“ != ”,判斷兩個操作數的值是否相等,如果值不相等,則條件為真。如:A != B,結果為真,會返回 true;
  3. 小於:“ < ”,判斷符號左邊操作數的值是否小於右邊操作數的值,如果是,則條件為真。如A < B,結果為真,會返回 true;
  4. 大於:“ > ”,判斷符號左邊操作數的值是否大於右邊操作數的值,如果是,則條件為真。如A > B,結果不為真,會返回 false;
  5. 小於等於 :“ <= ”,判斷符號左邊操作數的值是否小於或等於右邊操作數的值,如果是,則條件為真。如A <= B,結果為真,會返回 true;
  6. 大於等於:“ >= ”, 判斷符號左邊操作數的值是否大於或等於右邊操作數的值,如果是,則條件為真。 如A >= B,結果不為真,會返回 false;

看實際例子:

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

邏輯運算符

同樣的,我們(men) 先通過假設變量A的值是10,變量B的值是20:

  1. 邏輯與‘and’:“ && ”,如果兩個操作數都非零,則條件為真。如:A && B,結果為真;
  2. 邏輯或‘or’:“ || ”,如果兩個操作數中有一個非零,則條件為真。如:A || B,結果也為真;
  3. 邏輯非‘not’:“ ! ”,用於反轉操作數的邏輯狀態。如操作數的邏輯狀態條件為真,則邏輯非的結果為假。如:!(A&&B),因為A && B,結果為真,則邏輯非結果為假。

看一下實際例子:

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

位運算符

Arduino中的位運算符包括:按位與(yu) (&)、按位或(|)、按位異或(^)、取反(~),它們(men) 的運算對象都必須為(wei) 整數,而且除了取反運算符,其餘(yu) 三種均為(wei) 雙目運算符(見文末注解)。當然Arduino中還包括左移運算符(<<)和右移運算符(>> )。老慣例,假設變量A的值是60(二進製0011 1100),變量B的值是13(二進製0000 1101):

  1. 按位與(&):讓參與運算的兩個數相對應的二進製位相與。規則:隻有對應的兩個二進製位都為1時,結果位才為1;隻要有一個二進製位為0,結果位就為0。如A&B,A對應二進製為 0011 1100 ;B對應二進製為 0000 1101 ,結果為12,對應二進製運算結果為 0000 1100。
  2. 按位或(|):讓參與運算的兩個數相對應的的二進製位相或。規則:隻有對應的兩個二進製位都為0時,結果位才為0;隻要有一個二進製位為1,結果位就為1。如:A|B,結果對應的二進製位為 0011 1101,結果為61;
  3. 按位異或(^):讓參與運算的兩個數相對應的的二進製位相異或。規則:當對應的兩個二進製位相同(都為1或都為0)時,結果位為0;當對應的兩個二進製位相異時,結果位為1。如A^B,結果對應的二進製位為00110001,結果為49;
  4. 取反(~):用於求整數的二進製反碼。規則:二進製位為1的取反後變為0,二進製位為0的取反後變為1。如:~A,結果二進製為1100 0011;
  5. 左移運算符(<<):規則:左操作數值由右操作數指定的位數向左移動,左邊“拋棄”,右邊補0。如:(A << 2)結果為 240, 二進製為 1111 0000;
  6. 右移運算符(>> ):左操作數值按右操作數指定的位數右移,左邊用0填充,右邊丟棄。如:(A >> 2) 結果為 15, 二進製為 0000 1111。

看一些實際例子:

void loop () { int a = 60,b = 13 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

混合運算符

我們(men) 還是以實際例子來幫助理解,假設變量A的值是10,變量B的值是20:

  1. “++”:增量運算符,將整數值增加1。如:A++,結果為11;
  2. “–”: 遞減運算符,使整數值減少1 。如:A–,結果為9;
  3. “+=”:將右操作數添加到左操作數並將結果分配給左操作數。如:B += A,等價於B = B+ A;
  4. “-=”:將左操作數減去右操作數並將結果賦給左操作數。如:B -= A等價於B = B – A;
  5. “*=”:將右操作數與左操作數相乘,並將結果賦給左操作數。如:B*= A等價於B = B*A;
  6. “/=”:將左操作數與右操作數分開,並將結果分配給左操作數。如:B /= A等價於B = B / A;
  7. “%=”:對兩個操作數取模,並將結果賦給左操作數。如:B %= A等價於B = B % A。

看實際例子:

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; }

輸出為(wei) :

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

注解

單目運算符:隻對一個變量進行操作。如:a++;
雙目運算符:對兩個變量進行操作。如:a=1; b=3; c=a+b;就是雙目運算符;
多目運算符:對三個變量進行操作。如:int a = boolean ? b : c; 。
Tags:Arduino,運算符,程序  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢