版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計大連軟件職業(yè)學(xué)院3.1算術(shù)運算單目運算符:只作用于一個運算對象的運算符;
雙目運算符:作用于兩個運算對象的運算符。
一元運算符:++,--,+,-二元運算符:+,-,*,/,%(注意對運算對象的要求)1.求余運算A只能用來求兩個整數(shù)(int型或char型)的余數(shù);B會求a%b的值;eg:14%(-6)=?-14%6=?
余數(shù)符號一除了求余運算符外,其余運算符均既可整數(shù)運算,又可作浮點數(shù)運算。求余運算符僅可作整數(shù)運算。二兩個整數(shù)相除的運算結(jié)果為一個整數(shù)。eg:13/5三加減運算符可以作字符運算。eg:’a’+1算術(shù)運算符在使用中注意事項優(yōu)先級和結(jié)合性規(guī)則A不同級別:在算術(shù)運算符中,其優(yōu)先級別從高到低依次為:()(括號最優(yōu)先)+,-,++,--(一元運算符)*,/,%(二元運算符)+,-(二元運算符)B同一級別:按它們的結(jié)合性確定其優(yōu)先次序.返回2.增1和減1運算–––也稱自加和自減運算;A.用法:++或--可以寫在變量之前稱為前綴,寫在變量之后稱為后綴。eg:++i表示i=i+1--i表示i=i-1i++i--
注意:++或--只能對變量施加運算,不能對常量或表達式施加運算。Eg:5++或者(a+b)++或者++(a+b)都是錯誤的。前綴和后綴的區(qū)別.程序+-.cj=++i;j=i++;※小結(jié):++i先運算,后取值;i++先取值,后運算。++i,--i在使用i之前,先使i的值加(減)1;i++,i--在使用i之后,使i的值加(減)1;
inti=3,j=3;printf(“%d,%d\n”,++i,j++);運行結(jié)果:運行后的i,j
4,34,4思考:1)intx=10,y=7;y=++x-y+2;printf(“%d%d\n”,y,x);顯示什么?Ex.c注意一:最長符號原則:由于C語言的運算符可由多個符號組成,如:++,->,&&,||,->*……那么i+++j是(i++)+j還是i+(++j)?
“最長符號原則”規(guī)定:從左算起的多個符號若符合C語言規(guī)定的法定符號,一律不得拆分。注意:盡量避免這樣有歧義的寫法.注意二:Eg:inti=3;printf(“%d,%d”,i,i++);盡量避免這樣的寫法inti=3,j;j=i++;printf(“%d,%d”,i,j);后置運算符到底后到哪?inti=3,j;j=i+++i++;printf(“%d,%d\n”,i,j);
運行后i,j的值:5,6因為i++要等到加之后做,故j=6,i由3增到5。結(jié)論:后置運算要”后”到本語句的其它動作之后。表達式:表達式是一種使用常量、變量和函數(shù)以及運算符組合起來的有確定值及類型的算式。算術(shù)表達式inta=1,b=2;a*b+5b/a+a%ba+++b--3.1.3關(guān)系運算和邏輯運算一.關(guān)系運算符1.六種關(guān)系運算符><>=<===!=結(jié)合性:都是從左到右同一優(yōu)先級同一優(yōu)先級
二.關(guān)系表達式用六個關(guān)系運算符中的一個連接兩個算術(shù)表達式或賦值表達式,就構(gòu)成了關(guān)系表達式.Eg:a+b>=c-dx==y注意和“=”區(qū)分??!score>90等注意:1.C語言不提供邏輯型數(shù)據(jù),而是整數(shù)1表示真,用整數(shù)0表示假。
判斷:eg:0>942!=4242==42100!=50
四.邏輯運算符1.邏輯運算符的種類:
!邏輯非&&邏輯與‖邏輯或2.邏輯運算必須連接邏輯量,運算的結(jié)果也是邏輯量,即結(jié)果只能是0或1。C語言中真與假的規(guī)定非0為真,0為假;運算結(jié)果為真時用1表示;運算結(jié)果為假時用0表示。特別注意:所有非“0”整數(shù)都認為是邏輯“真”,整數(shù)“0”則認為是邏輯“假”。例如25&&-3其值得10||356其值得1!(-23)其值得03.運算符的優(yōu)先級和結(jié)合性!(非)算術(shù)運算符關(guān)系運算符&&和‖賦值運算符關(guān)系運算符和邏輯運算符的優(yōu)先級低于算術(shù)運算符,高于賦值運算符,因此,x+y>=a+b與(x+y)>=(a+b)等價低高“短路”現(xiàn)象:1.在計算形如(表達式1)&&(表達式2)&&……的邏輯表達式時,只要有一個表達式的值為假,那么整個表達式的值就為假。因此,C語言規(guī)定在計算過程中先計算表達式1,如果其值是邏輯真或非0,就接著計算表達式2,如果第一個表達式為邏輯假,則可以判定整個表達式的值為邏輯假,其后的表達式不被計算。2.在計算形如(表達式1)‖(表達式2)‖……,先計算表達式1,如果其值為邏輯“假”或0,就接著計算表達式2,如果第一個為邏輯真的表達式就可判定整個表達式為邏輯真,其后的表達式將不被計算。Eg:main(){inta=1,b=2,c=3,d=4,m=2,n=2;(m=a>b)&&(n=c>d);printf(“%d%d\n”,m,n);}思考??
數(shù)值在計算機中的表示
1.二進制位與字節(jié)
計算機系統(tǒng)的內(nèi)存儲器,是由許多稱為字節(jié)的單元組成的,1個字節(jié)由8個二進制位(bit)構(gòu)成,每位的取值為0/1。最右端的那1位稱為“最低位”,編號為0;最左端的那1位稱為“最高位”,而且從最低位到最高位順序,依次編號。下圖是1個字節(jié)各二進制位的編號。
2.數(shù)值的原碼表示數(shù)值的原碼表示是,將最高位用作符號位(0表示正數(shù),1表示負數(shù)),其余各位代表數(shù)值本身的絕對值(以二進制形式表示)的表示形式。為簡化描述起見,本節(jié)約定用1個字節(jié)表示1個整數(shù)。
76543210例如,+9的原碼是00001001└→符號位上的0表示正數(shù)-9的原碼是10001001。└→符號位上的1表示負數(shù)3.數(shù)值的反碼表示數(shù)值的反碼表示分兩種情況:(1)正數(shù)的反碼:與原碼相同。例如,+9的反碼是00001001。(2)負數(shù)的反碼:符號位為1,其余各位為該數(shù)絕對值的原碼按位取反(1變0、0變1)。例如,-9的反碼:因為是負數(shù),則符號位為“1”;其余7位為-9的絕對值+9的原碼0001001按位取反為1110110,所以-9的反碼是11110110。4.數(shù)值的補碼表示數(shù)值的補碼表示也分兩種情況:(1)正數(shù)的補碼:與原碼相同。例如,+9的補碼是00001001。(2)負數(shù)的補碼:符號位為1,其余位為該數(shù)絕對值的原碼按位取反;然后整個數(shù)加1。例如,-9的補碼:因為是負數(shù),則符號位為“1”;其余7位為-9的絕對值+9的原碼0001001按位取反為1110110;再加1,所以-9的補碼是11110111。5.數(shù)值在計算機中的表示──補碼在計算機系統(tǒng)中,數(shù)值一律用補碼表示(存儲),原因在于:使用補碼,可以將符號位和其它位統(tǒng)一處理;同時,減法也可按加法來處理。3.15位操作位操作是對字節(jié)或字節(jié)內(nèi)部的二進制位進行測試、設(shè)置、移位或邏輯運算。位操作分為兩類:一類是邏輯位運算;另一類是移位運算。1邏輯位運算1.邏輯位運算符邏輯位運算用來對某一個或某一對二進制位進行操作。其中:~表示按位取反&表示按位與︱表示按位或^表示按位異或pqp&qp^qp|q~p000001010111100110111010按位與按位異或按位或按位取反思考:10&&2=?10&2=?10^2=?2移位運算移位運算計算實現(xiàn)操作數(shù)字中所有的二進制位按指定的位數(shù)順序向左或向右移位.移位運算包括左移位和右移位。移位運算的一般格式為v<<nv>>n其中,v是操作數(shù),可以是變量,也可以是表達式;n必須是正整數(shù),表示要移動的位數(shù)。(1)左移位運算假設(shè)有變量a,左移位運算a<<n,表示將a的各個二進制位順序左移n位,右端空出的位補0,移出左端之外的位則舍棄。例如,設(shè)a=25,則a<<3為200:
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a│0│0│0│0│0│0│0│0│0│0│0│1│1│0│0│1│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a<<3│0│0│0│0│0│0│0│0│1│1│0│0│1│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘左移位相當(dāng)于乘2運算左移舍棄,右補空格.(2)右移位運算假設(shè)有變量a,右移位運算a>>n,表示將a的各個二進制位順序右移n位,移出右端之外的位被舍棄,左端空出的位則補0或補1,這取決于具體的機器和被移位的數(shù)是有符號數(shù)還是無符號數(shù)。(1)對無符號數(shù)進行右移時,左端空出的位一律補0;(2)對用補碼表示的有符號數(shù)進行右移時,有的機器采取邏輯右移,有的機器則采取算術(shù)右移。邏輯右移:不管是正數(shù)還是負數(shù),左端空位一律補0;算術(shù)右移:正數(shù)右移,左端的空位全部補0;負數(shù)右移,左端的空位全部補1(即符號位)。例如,設(shè)a=-32768(補碼表示),則有:┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a│1│0│0│0│0│0│0│0│0│0│0│0│0│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a>>2│0│0│1│0│0│0│0│0│0│0│0│0│0│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘邏輯右移2位后,其值為8192。┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐a>>2│1│1│1│0│0│0│0│0│0│0│0│0│0│0│0│0│└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘算術(shù)右移2位后,其值為-8192。算術(shù)右移相當(dāng)于除2運算。3.1.6賦值運算賦值表達式的形式:v=eEg:a=10其中:“=”稱為賦值符號或賦值運算符號;“=”右邊的e是一個表達式或常量;左邊的v是一個變量或數(shù)組元素.賦值表達式的功能是計算e的值并存放在v中.賦值表達式的末尾加上分號就是賦值語句.一.賦值運算符C語言提供了兩種賦值運算符:
簡單賦值運算符;復(fù)合賦值運算符.1.簡單賦值運算符即“=”,它必須連接兩個運算量,其左邊只能是變量或數(shù)組元素,右邊可以是任何表達式.Eg:判斷正誤?x=y(tǒng)+2;x=x+1;y+2=x,5=x;2.復(fù)合賦值運算符復(fù)合賦值運算符有10種,它們由賦值號“=”和另外一個二元(雙目)運算符組成,具有計算和賦值雙重功能.復(fù)合賦值運算的一般格式為:
變量雙目運算符=表達式└──┬──┘復(fù)合賦值運算符它等價于:變量=變量雙目運算符(表達式)。當(dāng)表達式為簡單表達式時,表達式外的一對圓括號才可缺省,否則可能出錯。例如,x+=3 /*等價于x=x+3*/y*=x+6 /*等價于y=y*(x+6),而不是y=y*x+6*/
注意:一.使用復(fù)合賦值運算符連接兩個運算量時,要把右邊的運算量視為一個整體。例如x*=y+5表示x=x*(y+5)而不是x=x*y+5。二.優(yōu)先級:所有的賦值運算符都處于同一優(yōu)先級,且優(yōu)先級很低,僅比逗號運算符高而比其他所有的運算符都低.
結(jié)合性:從右到左。賦值運算要求類型兼容教材3.4節(jié)類型轉(zhuǎn)換問題由低到高——自動轉(zhuǎn)換由高到低——強制轉(zhuǎn)換(類型說明符)〈表達式〉eg:inta=3;doubleb;b=a;自動類型轉(zhuǎn)換低高doublefloatlongunsignedintchar,short低高①橫向箭頭表示必定的轉(zhuǎn)換(兩個float型的數(shù)據(jù)運算,也先都化成double型除非各自后綴f。)②縱向箭頭表示當(dāng)運算對象類型不同時的轉(zhuǎn)換方向。強制轉(zhuǎn)換舉例#include<stdio.h>voidmain(){ inta=5; floatb=(float)3.9; doubled; d=b; a=(int)b; printf("%d\t%.2lf\n",a,d);}其他運算符1三目運算符d1?d2:d3例如:分析如下程序結(jié)果inta=3,b=5;a>b?a:b3數(shù)據(jù)長度運算符sizeof((類型說明符)/(變量名))Eg:分析以下表達式值分別為多少?inta,b[20];sizeof(a);sizeof(int);sizeof(b);sizeof(b[1]);4逗號運算符一.逗號表達式的形式d1,d2,d3,d41.Eg:3+5,6+83*5,a*4,a+52.表達式1,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度購車環(huán)保補貼申請合同3篇
- 二零二五版電子商務(wù)支付平臺跨境支付合規(guī)審查合同3篇
- 二零二五年貨車駕駛員駕駛技能考核及評價合同3篇
- 二零二五版房產(chǎn)抵押合同變更及合同履行監(jiān)督協(xié)議6篇
- 二零二五版酒店物業(yè)管理安保保潔服務(wù)全面承包合同3篇
- 二零二五版高空作業(yè)安全協(xié)議書-高空雨棚安全檢測與維護合同3篇
- 二零二五年度空壓機租賃與能源管理優(yōu)化合同3篇
- 二零二五版人工智能企業(yè)股權(quán)整合與行業(yè)應(yīng)用開發(fā)合同3篇
- 二零二五年度會議禮品定制及贈送服務(wù)合同范本3篇
- 二零二五年度特種防盜門制造與銷售承攬合同范本3篇
- 上海車位交易指南(2024版)
- 醫(yī)學(xué)脂質(zhì)的構(gòu)成功能及分析專題課件
- 新疆塔城地區(qū)(2024年-2025年小學(xué)六年級語文)部編版期末考試(下學(xué)期)試卷及答案
- 2024年9月時事政治試題帶答案
- 汽車供應(yīng)商審核培訓(xùn)
- 高技能人才培養(yǎng)的策略創(chuàng)新與實踐路徑
- 《計算機網(wǎng)絡(luò) 》課件第1章
- 1《地球的表面》說課稿-2024-2025學(xué)年科學(xué)五年級上冊教科版
- GB/T 44764-2024石油、石化和天然氣工業(yè)腐蝕性石油煉制環(huán)境中抗硫化物應(yīng)力開裂的金屬材料
- 自動化招聘筆試試題及答案
- 重慶市主城四區(qū)2025屆高一物理第一學(xué)期期末聯(lián)考試題含解析
評論
0/150
提交評論