在c語言中 計算機中C語言的 運算子

2021-10-16 02:07:07 字數 3909 閱讀 4056

運算子是一種告訴編譯器執行特定的數學或邏輯操作的符號。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語言中浮點型在計算機中的儲存

一 浮點型的儲存 在十進位制中我們都學習過科學計數法,比如31.4可以用科學計數法表示就是3.14 10 1。浮點型同樣是採取科學計數法進行表示的。在計算機中,以二進位制數儲存,如1011.10用科學計數法的方式可以寫成1.01110 2 3,因為浮點型還有負數,所以在計算機中表示時還需要加上乙個符...

C語言中計算機的記憶體相關

程式設計的一些基礎知識 1.計算機的記憶體。在程式執行時,組成程式的指令和程式所操作的資料都必須存在機器的記憶體中,成為主記憶體 main memory 或者隨機訪問儲存器 random access memory,ram 還包含一種儲存器,唯讀儲存器 ram,read only memory 比如...

C語言中浮點數在計算機中的儲存

double 的儲存方式是一樣的,下面用 float 做以解釋 任意乙個二進位制浮點數v可以表示成下面形式 v 1 s m 2 e 1 1 s表示符號位,當 s 0,v 為正 當 s 1,v 為負 2 m為有效數字,因為 m是二進位制,大於等於 1,小於2。3 2 e表示指數字 舉例來說 十進位制的...