找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2528|回復(fù): 0
收起左側(cè)

C語言教程(4)-運(yùn)算符

[復(fù)制鏈接]
ID:99082 發(fā)表于 2015-12-10 03:38 | 顯示全部樓層 |閱讀模式
--運(yùn)算符歸納:


在編程中我們總要有些數(shù)據(jù)需要處理,C語言提供了大量的操作?梢赃M(jìn)行算術(shù)計(jì)算、比較值的大小、修改變量、邏輯地組合關(guān)系等等。

在下面為大家用一個(gè)表格歸納常用的運(yùn)算符:


--基本運(yùn)算符:


賦值運(yùn)算符:=

符號(hào)=不表示“相等”,而是一個(gè)賦值運(yùn)算符。

i=2000;//語句將數(shù)值2000賦給名字i

符號(hào)=的左邊是一個(gè)變量名,右邊是賦給該變量的值。符號(hào)=被稱為賦值運(yùn)算符。要注意不要把“i=2000;”這個(gè)語句讀作“i等于2000”,請一定務(wù)必讀作“把數(shù)值2000賦值給變量i”

i=i+1;//給一個(gè)有限數(shù)加1

上邊的語句在數(shù)學(xué)上是沒有任何意義的。但是作為計(jì)算機(jī)賦值語句,它卻是很合理的。它意味著“找到名字為i的變量的值,對那個(gè)值加1,然后將這個(gè)新的賦值給名字為i的變量”

加法運(yùn)算符:+

加法運(yùn)算符是使得在“+”兩側(cè)的值被加到一起,例如

i=i+1;//給一個(gè)有限數(shù)加1

減法運(yùn)算符:-

減法運(yùn)算符從它前面的數(shù)減去它后面的數(shù),例如

i=i-1;//給一個(gè)有限數(shù)減1

符號(hào)運(yùn)算符:-

符號(hào)運(yùn)算符就是數(shù)學(xué)里邊的“—”負(fù)號(hào)。

a=-2;//把-2賦值給變量a

乘法運(yùn)算符:*

乘法由符號(hào)*表示。語句:

a=2*a;

除法運(yùn)算符:/

C語言使用符號(hào)/來表示除法。“/”左邊的數(shù)值被它右邊的數(shù)值除。例如

a=a/12;

但是這里需要注意的是:整數(shù)型數(shù)值除法運(yùn)算和浮點(diǎn)型數(shù)值除法運(yùn)算有很大的不同。浮點(diǎn)型數(shù)值除法運(yùn)算會(huì)得出一個(gè)浮點(diǎn)型的結(jié)果。那么自然啦,整數(shù)型數(shù)值除法運(yùn)算會(huì)得出一個(gè)整數(shù)型的整數(shù)結(jié)果。整數(shù)型不能有小數(shù)部分,這使得5除以3很讓人頭疼,因?yàn)榻Y(jié)果有小數(shù)部分。那咋辦呢?整數(shù)除法結(jié)果的小數(shù)部分都被丟棄,這個(gè)過程被稱為“截尾”。

取模運(yùn)算符:%

取模運(yùn)算符用于整數(shù)運(yùn)算。該運(yùn)算符計(jì)算出用它右邊的整數(shù)去除它左邊整數(shù)得到的余數(shù)。不要以為這個(gè)運(yùn)算符是只供數(shù)學(xué)家使用的深?yuàn)W工具,它是實(shí)際上我們非常常用常見的用途幫助你控制程序的流程。加入你存入一串字符串,但你只能按照要求每8個(gè)字節(jié)存一次,對存入的字符數(shù)進(jìn)行除以8的取模(num%8)操作并檢驗(yàn)結(jié)果是不是0。

增量和減量運(yùn)算符:++、——

增量運(yùn)算符完成簡單的任務(wù),即將其操作數(shù)的值增加1.這個(gè)運(yùn)算符以兩種方式出現(xiàn)。

在第一種方式中,++出現(xiàn)在它作用的變量的前面,這是前綴模式。

a=++a;//前綴:使用a的值之后改變a

在第二種方式中,++出現(xiàn)在它的作用的變量后面,這是后綴模式。

a=a++;//后綴:使用b的值之前改變a

當(dāng)然,之前我在不太熟練的情況下也使用下面不太精致的形式:

a=a+1;

但是,這個(gè)程序給別人看的時(shí)候,沒有人會(huì)相信你是一個(gè)熟練的C程序員。


--基本位運(yùn)算:


位運(yùn)算:

在嵌入式的應(yīng)用中,需要與各種字節(jié)、字雙字,也就是以8位、16位、32位長為單位的寄存器打交道。

位移運(yùn)算:<<、>>

<<在每次左移操作時(shí),高位被舍,稱之為溢出,低位被自動(dòng)補(bǔ)入0。每次左移高位都會(huì)溢出,只是不關(guān)心0溢出,而在意1的溢出。

>>在每次右移操作時(shí),高位自動(dòng)補(bǔ)0,低位被舍棄。

左移一位相當(dāng)于該數(shù)被乘以2,左移n位相當(dāng)于該數(shù)乘以2的n次方。右移一位相當(dāng)于該數(shù)除以2,右移n位,相當(dāng)于該數(shù)除以2的n次方。

按位與運(yùn)算:&

參與按位與運(yùn)算(&)的兩個(gè)運(yùn)算數(shù),從低位開始,對齊每一位,逐位進(jìn)行與操作運(yùn)算只有當(dāng)對應(yīng)位上的數(shù)據(jù)都為1時(shí),該位的結(jié)果為1,否則為0。

按位或運(yùn)算:|

參與按位或運(yùn)算(|)的兩個(gè)運(yùn)算數(shù),從低位開始,對齊每一位,逐位進(jìn)行與操作運(yùn)算,當(dāng)對應(yīng)位的數(shù)據(jù)有一個(gè)數(shù)據(jù)位1時(shí),該結(jié)果為1,只有都為0時(shí)才為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)-運(yùn)算符: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

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表