2011年4月1日 星期五

DIY - PIC:MPLAB C18 編譯器的語言的運算子 (四十八)

DIY - PICMPLAB C18 編譯器的語言的運算子 (四十八)

MPLAB C18 語言基本資料處理中,所有的運算式都是由運算子 (Operator, 算符) 運算元 (Operand) 與括號 (Delimiters) 組合起來的。在程式內運用許多的變數以及常數來代表一些資料,然後將運算後的結果儲存。

 
 ▼運算子優先順序:
運算子 Highest 結合規則
( ) [ ] ->  . 左到右
! ~ ++ -- + - (type cast) * & sizeof 右到左
* / % 左到右
+ - 左到右
<< >> 左到右
< <= > >= 左到右
== != 左到右
& 左到右
^ 左到右
| 左到右
&& 左到右
|| 左到右
? 右到左
= += -= /= %= &= 右到左
, 左到右
Lowest

例:
Expression Result Note
10 – 2 * 5 0 * has higher precedence than +
(10 – 2) * 5 40
0x20  | 0x01 != 0x01 0x20 != has higher precedence than |
(0x20 | 0x01) != 0x01 1
1 << 2 + 1 8 + has higher precedence than <<
(1 << 2 ) + 1 5

算術運算元 ( Arithmetic operators ) 
C 語言的算術運算子包含加、減、乘、除、取餘數,皆需兩個運算元構成運算式。遞增及遞減則為單元運算子,也就是說只需要一個運算元即構成運算式,但在運算元有前後的差別。如下列表:

運算子 功能 Description 範例
+ Add a + b
- Subtract a - b
* Multiply a * b
/ Divide a / b
% 取餘數 Modulo a % b
++ 前遞增 Increment ++a
++ 後遞增 Increment a++
-- 前遞減 Decrement --a
-- 後遞減 Decrement a--

關係運算子 ( Relational operators ) 
C 語言的關係運算子都需要兩個運算元,包含小於、小於等於、大於、大於等於,另外有兩個測試相等性的運算子,運算結果會以 0 表示假, 1 表示真。

運算子 功能 Description 範例
小於 Less than a < b
<= 小於等於 Less than or equal to a <= b
大於 Greater than a > b
>= 大於等於 Greater than or equal to a >= b
== 相等 Equal to a == b
!= 不等 Not Equal to a != b

邏輯運算子 ( Logical operators )C 語言的邏輯運算子包含邏輯非,施用於單一運算元,其他邏輯且、或都需要兩個運算元。

運算子 功能 Description 範例
! NOT !a
&& AND a && b
|| OR A || b

位元運算子(Bitwise operators) 
這樣的位元補數運算子在 C 是用 ~ 運算子,全部的位元運算子如下表:

運算子 功能 Description 範例
& AND a & b
| OR a | b
^ 互斥或 Exclusive OR a ^ b
<<  向左位移 Shift left a << b
>>  向右位移 Shift right a >> b
~ 1 的補數 Complement ~a

2011 04 01 天氣報告
氣溫:20.3 @ 23:00 
相對濕度:百分之97% 
天氣:天色大致良好

沒有留言:

張貼留言