在編程中我們總要有些數據需要處理,C語言提供了大量的操作。可以進行算術計算、比較值的大小、修改變量、邏輯地組合關系等等。
在下面為大家用一個表格歸納常用的運算符:
--基本運算符:
賦值運算符:=
符號=不表示“相等”,而是一個賦值運算符。
i=2000;//語句將數值2000賦給名字i
符號=的左邊是一個變量名,右邊是賦給該變量的值。符號=被稱為賦值運算符。要注意不要把“i=2000;”這個語句讀作“i等于2000”,請一定務必讀作“把數值2000賦值給變量i”
i=i+1;//給一個有限數加1
上邊的語句在數學上是沒有任何意義的。但是作為計算機賦值語句,它卻是很合理的。它意味著“找到名字為i的變量的值,對那個值加1,然后將這個新的賦值給名字為i的變量”
加法運算符:+
加法運算符是使得在“+”兩側的值被加到一起,例如
i=i+1;//給一個有限數加1
減法運算符:-
減法運算符從它前面的數減去它后面的數,例如
i=i-1;//給一個有限數減1
符號運算符:-
符號運算符就是數學里邊的“—”負號。
a=-2;//把-2賦值給變量a
乘法運算符:*
乘法由符號*表示。語句:
a=2*a;
除法運算符:/
C語言使用符號/來表示除法。“/”左邊的數值被它右邊的數值除。例如
a=a/12;
但是這里需要注意的是:整數型數值除法運算和浮點型數值除法運算有很大的不同。浮點型數值除法運算會得出一個浮點型的結果。那么自然啦,整數型數值除法運算會得出一個整數型的整數結果。整數型不能有小數部分,這使得5除以3很讓人頭疼,因為結果有小數部分。那咋辦呢?整數除法結果的小數部分都被丟棄,這個過程被稱為“截尾”。
取模運算符:%
取模運算符用于整數運算。該運算符計算出用它右邊的整數去除它左邊整數得到的余數。不要以為這個運算符是只供數學家使用的深奧工具,它是實際上我們非常常用常見的用途幫助你控制程序的流程。加入你存入一串字符串,但你只能按照要求每8個字節存一次,對存入的字符數進行除以8的取模(num%8)操作并檢驗結果是不是0。
增量和減量運算符:++、——
增量運算符完成簡單的任務,即將其操作數的值增加1.這個運算符以兩種方式出現。
在第一種方式中,++出現在它作用的變量的前面,這是前綴模式。
a=++a;//前綴:使用a的值之后改變a
在第二種方式中,++出現在它的作用的變量后面,這是后綴模式。
a=a++;//后綴:使用b的值之前改變a
當然,之前我在不太熟練的情況下也使用下面不太精致的形式:
a=a+1;
但是,這個程序給別人看的時候,沒有人會相信你是一個熟練的C程序員。
--基本位運算:
位運算:
在嵌入式的應用中,需要與各種字節、字雙字,也就是以8位、16位、32位長為單位的寄存器打交道。
位移運算:<<、>>
<<在每次左移操作時,高位被舍,稱之為溢出,低位被自動補入0。每次左移高位都會溢出,只是不關心0溢出,而在意1的溢出。
>>在每次右移操作時,高位自動補0,低位被舍棄。
左移一位相當于該數被乘以2,左移n位相當于該數乘以2的n次方。右移一位相當于該數除以2,右移n位,相當于該數除以2的n次方。
按位與運算:&
參與按位與運算(&)的兩個運算數,從低位開始,對齊每一位,逐位進行與操作運算只有當對應位上的數據都為1時,該位的結果為1,否則為0。
按位或運算:|
參與按位或運算(|)的兩個運算數,從低位開始,對齊每一位,逐位進行與操作運算,當對應位的數據有一個數據位1時,該結果為1,只有都為0時才為0。
以下是本系列教程文章列表:歡迎大家踴躍討論,有問題可在51黑論壇回帖提出.
C語言基礎教程(1):http://www.raoushi.com/bbs/dpj-41177-1.html
C語言教程(2)-關鍵字 變量:http://www.raoushi.com/bbs/dpj-41178-1.html
C語言教程(3)-控制語句:http://www.raoushi.com/bbs/dpj-41179-1.html
C語言教程(4)-運算符:http://www.raoushi.com/bbs/dpj-41180-1.html
C語言教程(5)-函數:http://www.raoushi.com/bbs/dpj-41181-1.html
C語言教程(6)-數組與函數指針:http://www.raoushi.com/bbs/dpj-41182-1.html
51單片機教程:http://www.raoushi.com/bbs/mcu-xuexi-1.html
STM32教程:http://www.raoushi.com/bbs/dpj-41167-1.html
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1