c語言異或運算子 計算機中C語言的 運算子

2021-10-11 07:12:01 字數 3909 閱讀 5106

運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。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異或任何數...