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