運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。c 語言內建了豐富的運算子,並提供了以下型別的運算子:
本章將逐一介紹算術運算子、關係運算子、邏輯運算子、位運算子、賦值運算子和其他運算子。
下表顯示了 c 語言支援的所有算術運算子。假設變數a的值為 10,變數b的值為 20,則:
請看下面的例項,了解 c 語言中所有可用的算術運算子:
#include int main()
當上面的**被編譯和執行時,它會產生下列結果:
line 1 - c 的值是 31line 2 - c 的值是 11line 3 - c 的值是 210line 4 - c 的值是 2line 5 - c 的值是 1line 6 - c 的值是 21line 7 - c 的值是 22
以下例項演示了 a++ 與 ++a 的區別:
#include int main()
以上程式執行輸出結果為:
先賦值後運算:line 1 - c 的值是 10line 2 - a 的值是 11line 3 - c 的值是 10line 4 - a 的值是 9先運算後賦值:line 5 - c 的值是 11line 6 - a 的值是 11line 7 - c 的值是 9line 8 - a 的值是 9
下表顯示了 c 語言支援的所有關係運算子。假設變數a的值為 10,變數b的值為 20,則:
請看下面的例項,了解 c 語言中所有可用的關係運算子:
#include int main() else if ( a < b ) else if ( a > b ) else /* 改變 a 和 b 的值 */ a = 5; b = 20; if ( a <= b ) if ( b >= a ) }
當上面的**被編譯和執行時,它會產生下列結果:
line 1 - a 不等於 bline 2 - a 不小於 bline 3 - a 大於 bline 4 - a 小於或等於 bline 5 - b 大於或等於 a
下表顯示了 c 語言支援的所有關係邏輯運算子。假設變數a的值為 1,變數b的值為 0,則:
請看下面的例項,了解 c 語言中所有可用的邏輯運算子:
#include int main() if ( a || b ) /* 改變 a 和 b 的值 */ a = 0; b = 10; if ( a && b ) else if ( !(a && b) ) }
當上面的**被編譯和執行時,它會產生下列結果:
line 1 - 條件為真line 2 - 條件為真line 3 - 條件為假line 4 - 條件為真
位運算子作用於位,並逐位執行操作。&、 | 和 ^ 的真值表如下所示:
pqp & qp | qp ^ q00000010111111010011
假設如果 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
下表顯示了 c 語言支援的位運算子。假設變數a的值為 60,變數b的值為 13,則:
運算子描述例項&
按位與操作,按二進位制位進行"與"運算。運算規則:
0&0=0; 0&1=0; 1&0=0; 1&1=1;
(a & b) 將得到 12,即為 0000 1100|
按位或運算子,按二進位制位進行"或"運算。運算規則:
0|0=0; 0|1=1; 1|0=1; 1|1=1;
(a | b) 將得到 61,即為 0011 1101^
異或運算子,按二進位制位進行"異或"運算。運算規則:
0^0=0; 0^1=1; 1^0=1; 1^1=0;
(a ^ b) 將得到 49,即為 0011 0001~
取反運算子,按二進位制位進行"取反"運算。運算規則:
~1=0; ~0=1;
請看下面的例項,了解 c 語言中所有可用的位運算子:
#include int main()
當上面的**被編譯和執行時,它會產生下列結果:
line 1 - c 的值是 12line 2 - c 的值是 61line 3 - c 的值是 49line 4 - c 的值是 -61line 5 - c 的值是 240line 6 - c 的值是 15
下表列出了 c 語言支援的賦值運算子:
請看下面的例項,了解 c 語言中所有可用的賦值運算子:
#include void main()
當上面的**被編譯和執行時,它會產生下列結果:
line 1 - = 運算子例項,c 的值 = 21line 2 - += 運算子例項,c 的值 = 42line 3 - -= 運算子例項,c 的值 = 21line 4 - *= 運算子例項,c 的值 = 441line 5 - /= 運算子例項,c 的值 = 21line 6 - %= 運算子例項,c 的值 = 11line 7 - <<= 運算子例項,c 的值 = 44line 8 - >>= 運算子例項,c 的值 = 11line 9 - &= 運算子例項,c 的值 = 2line 10 - ^= 運算子例項,c 的值 = 0line 11 - |= 運算子例項,c 的值 = 2
下表列出了 c 語言支援的其他一些重要的運算子,包括sizeof和? :。
請看下面的例項,了解 c 語言中所有可用的雜項運算子:
#include int main()
當上面的**被編譯和執行時,它會產生下列結果:
line 1 - 變數 a 的大小 = 4line 2 - 變數 b 的大小 = 2line 3 - 變數 c 的大小 = 8a 的值是 4*ptr 是 4b 的值是 30b 的值是 20
運算子的優先順序確定表示式中項的組合。這會影響到乙個表示式如何計算。某些運算子比其他運算子有更高的優先順序,例如,乘除運算子具有比加減運算子更高的優先順序。
例如 x = 7 + 3 * 2,在這裡,x 被賦值為 13,而不是 20,因為運算子 * 具有比 + 更高的優先順序,所以首先計算乘法 3*2,然後再加上 7。
下表將按運算子優先順序從高到低列出各個運算子,具有較高優先順序的運算子出現在**的上面,具有較低優先順序的運算子出現在**的下面。在表示式中,較高優先順序的運算子會優先被計算。
請看下面的例項,了解 c 語言中運算子的優先順序:
#include int main()
當上面的**被編譯和執行時,它會產生下列結果:
(a + b) * c / d 的值是 90((a + b) * c) / d 的值是 90(a + b) * (c / d) 的值是 90a + (b * c) / d 的值是 50
c語音異或運算子 c語言異或 c語言異或運算例子
用異或演算法逐字節對檔案c進行加密,輸出到另外乙個新檔案d中。include include int main 按位異或需要將異或雙方轉換成二進位制數,如當a 5時,二進位制為101,與0異或後結果為100,也就是b 4的二進位制了。異或時的規則是 逐位進行比較,相同為0 即1與1.位運算子有 按位...
在c語言中 計算機中C語言的 運算子
運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。c 語言內建了豐富的運算子,並提供了以下型別的運算子 本章將逐一介紹算術運算子 關係運算子 邏輯運算子 位運算子 賦值運算子和其他運算子。下表顯示了 c 語言支援的所有算術運算子。假設變數a的值為 10,變數b的值為 20,則 請看下面的例項,了...
C語言 位異或運算子
c語言 位異或運算子 位運算子家族中,最常用的,某過於異或運算子。異或運算子是指 參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即 0 0 0,1 0 1,0 1 1,1 1 0 例如 10100001 00010001 10110000 0 0 0,0 1 1 可理解為 0異或任何數...