在 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%
天氣:天色大致良好
沒有留言:
張貼留言