版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
語言程序數據描述演示文稿第一頁,共四十六頁。語言程序數據描述第二頁,共四十六頁。3計算機中數的表示及進制轉換數碼、基與權數碼:表示數的符號基:數碼的個數權:每一位所具有的值數制2.0
預備知識第三頁,共四十六頁。4二進制、八進制、十六進制轉換成十進制
方法:按權相加各種進制之間的轉換第四頁,共四十六頁。5
二進制、八進制、十六進制轉換成十進制
十進制轉換成二進制、八進制、十六進制方法:連續(xù)除以基,從低到高記錄余數,直至商為0各種進制之間的轉換(整數)
方法:按權相加例把十進制數459轉換成十六進制數4591628161160(459)10=(1CB)161CB余11余12余1第五頁,共四十六頁。6
二進制轉換成八進制:從右向左,每3位一組(不足3位左補0),轉換成八進制八進制轉換成二進制:用3位二進制數代替每一位八進制數例(1101001)2=(001,101,001)2=(151)8例(246)8=(010,100,110)2=(10100110)2000~0001~1010~2011~3100~4101~5110~6111~7
二進制與八進制之間的轉換第六頁,共四十六頁。7
二進制轉換成十六進制:從右向左,每4位一組(不足4位左補0),轉換成十六進制十六進制轉換成二進制:用4位二進制數代替每一位十六進制數例2=(0011,0101,0111,1101)2=(357D)16例(4B9E)16=(0100,1011,1001,1110)220000~00001~10010~20011~30100~40101~50110~60111~71000~81001~91010~A1011~B1100~C1101~D1110~E1111~F二進制與十六進制之間的轉換
第七頁,共四十六頁。8內存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進制位組成每個二進位的值是0或101234567012345678910……...字節(jié)和位
第八頁,共四十六頁。9原碼:最高位為符號位,其余各位為數值本身的絕對值反碼:正數:反碼與原碼相同負數:符號位為1,其余位對原碼取反補碼:正數:原碼、反碼、補碼相同負數:最高位為1,其余位為原碼取反,再對整個數加13126912457810119-5=49+7=16=(14)12數值的表示方法——原碼、反碼和補碼
第九頁,共四十六頁。10原碼反碼補碼+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000數的范圍01111111~11111111(-127~+127)01111111~10000000(-127~+127)01111111~10000000(-128~+127)負十進制數的補碼:該正數的原碼各位全部取反加1例7原碼:00000111
取反:11111000
加1:11111001=-7(用一字節(jié)表示數,C語言中的char占一字節(jié))第十頁,共四十六頁。1101111111char:最大:12710000000最小:-128數值表示:C語言中數值使用補碼表示unsignedchar:最大:255最小:00111111111111111short:最大:327671000000000000000最小:-327681111111111111111unsignedshort:最大:655350000000000000000最小:01111111100000000第十一頁,共四十六頁。12數制基權表示數碼特點10o,101,102,…十進制數0~910逢十進一二進制數0~122o,21,22,…逢二進一八進制數0~788o,81,82,…逢八進一十六進制數0~9,A~F,a~f1616o,161,162,…逢十六進一十進制:59=5101+10o十六進制:3B=3161+1116o八進制:73=781+38o數值表示,計算機內用二進制59111011733B第十二頁,共四十六頁。13數據類型總表C數據類型基本類型構造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整型實型單精度型float雙精度型double數組結構體struct共用體union短整型short(int)長整型long(int)整型int數據類型決定:1.數據占內存字節(jié)數2.數據取值范圍3.其上可進行的操作2.1
數據類型第十三頁,共四十六頁。14類型符號關鍵字數的表示范圍所占位數整型字符型實型有無(signed)int(signed)short(signed)long有有有無說明:數據類型所占字節(jié)數,與C語言編譯系統有關(VC默認生成32位的機器代碼)基本整型int
==長整型long基本數據類型16或3216-32768~3276732-2147483648~214748364716或32160~65535320~4294967295323.4e-38~3.4e38641.7e-308~1.7e3088-128~12780~255unsignedchar(signed)chardoublefloatunsigned
intunsigned
shortunsigned
long第十四頁,共四十六頁。15標識符定義:用來標識變量、常量、函數等的字符序列組成:只能由字母、數字、下劃線組成,且第一個字母必須是字母或下劃線大小寫敏感不能使用關鍵字長度:最長32個字符命名原則:見名知意,不宜混淆如l與I,o與0例:判斷下列標識符號合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123<>3days#33char$123a>b2.2常量與變量
第十五頁,共四十六頁。16一般用大寫字母是宏定義預處理命令,不是C語句直接常量:整型常量實型常量字符常量字符串常量定義:程序運行時其值不能改變的量(即常數)分類:符號常量,直接常量符號常量:用標識符代表常量定義格式:#define
符號常量常量<>例:#definePI3.14159main(){floatarea,r=10;area=r*r*PRICE;printf("Area=%f",area);}運行結果:Area=314.159000常量第十六頁,共四十六頁。17三種形式:十進制整數:由數字0~9和正負號表示.如123,-456,0八進制整數:由數字0開頭,后跟數字0~7表示.如0123,011十六進制整數:由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff例12與12L整型常量默認為int類型在整常量后加字母l或L,認為它是longint
型常量問題:0123=()100x123=()100Xff=()1083291255問題:0123=()100x123=()100Xff=()10整型常量(整常數)第十七頁,共四十六頁。18表示形式:十進制數形式:(必須有小數點)如0.123,.123,0.0,123.0,123.指數形式:(e或E之前必須有數字;指數必須為整數)如12.3e3,123E2,1.23e4
e-5,實型常量默認為double型在實型常量后加字母f或F,以指定為float型實型常量(實數或浮點數)第十八頁,共四十六頁。aaa19定義:用單引號括起來的單個普通字符或轉義字符.
字符常量的值:該字符的ASCII碼值<轉義字符及其含義:轉義字符含義\n\v\r\a\‘\ddd\t\b\f\\\"\xhh轉義字符含義換行垂直制表回車響鈴單引號3位8進制數代表的字符水平制表退格換頁反斜線雙引號2位16進制數代表的字符如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()例:‘A’-------’\101’-------’\x41’--------65如‘A’——65,‘a’——97,
‘0’——48,‘\n’——10如‘a’‘A’‘?’‘\n’‘\101’轉義字符:反斜線后面跟一個字符或一個代碼值表示例轉義字符舉例)main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}運行結果:(屏幕顯示)ABCIsay:"Howareyou?"\CProgram\Turbo‘C’例main(){printf("Y\b=\n");}運行結果:屏幕顯示:=打印機輸出:¥字符常量
第十九頁,共四十六頁。20字符常量與字符串常量不同定義:用雙引號("")括起來的字符序列存儲:每個字符串尾自動加一個‘\0’
作為字符串結束標志hello\0例字符串"hello"在內存中aa\0例‘a’"a"例空串""\0例:charch;ch="A";例:charch;ch=‘A’;字符串常量
第二十頁,共四十六頁。21編譯程序根據變量定義為其分配指定字節(jié)的內存單元…...地址inta=1,b=-3,c;abc4字節(jié)4字節(jié)4字節(jié)地址地址…...內存1-3隨機數概念:其值可以改變的量變量名與變量值變量定義的一般格式:
數據類型變量1[,變量2,…,變量n];變量初始化:定義時賦初值例:inta,b,c;floatdata;決定分配字節(jié)數和數的表示范圍合法標識符例:intx=1,y=1,z=1;
intx=y=z=1;?變量
第二十一頁,共四十六頁。22變量的使用:先定義,后使用例1intstudent;stadent=19;//Undefinedsymbol‘stadent’infunctionmain
變量定義位置:一般放在函數開頭,可執(zhí)行語句之前main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf("data=%f\n",data);}變量定義可執(zhí)行語句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf("data=%f\n",data);}變量
第二十二頁,共四十六頁。23占字節(jié)數隨機器不同而不同,一般占一個機器字short≤int≤long可用sizeof(類型標識符)測量
實型變量float:占4字節(jié),提供7位有效數字double:占8字節(jié),提供15~16位有效數字字符型變量字符變量存放字符ASCII碼char與int數據間可進行算術運算例1:floata=1234.0f;例2:doubleb=1234.5678901;例a=‘D’;//a=68;x=‘A’+5;//x=65+5;s=‘!’+‘G’//s=33+71;沒有字符串變量,用字符數組存放整型變量
第二十三頁,共四十六頁。24/*買肉,字符換算*/#definePRICE13.0main(){intnum;floattotal;charch=‘5’;
num=ch-‘0’;total=num*PRICE; printf("total=%f,num=%d\n",total,num);}宏定義變量定義輸出結果運行結果:total=65.000000,num=5第二十四頁,共四十六頁。25隱式轉換什么情況下發(fā)生運算轉換------不同類型數據混合運算時賦值轉換------把一個值賦給與其類型不同的變量時輸出轉換------輸出時轉換成指定的輸出格式函數調用轉換------實參與形參類型不一致時轉換運算轉換規(guī)則:不同類型數據運算時先自動轉換成同一類型(精度高的)2.3不同類型數據間的轉換第二十五頁,共四十六頁。26doublefloatlongunsignedintchar,short低高說明:必定的轉換運算對象類型不同時轉換charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledoubleintintdoubledoubledoubledoubledoubledouble10+‘a’+i*f-d/l例2inti;floatf;doubled;longl;例1第二十六頁,共四十六頁。27一般形式:(類型名)(表達式)例:(int)(x+y)(int)x+y(double)3/2(int)3.6
說明:強制轉換得到所需類型的中間變量,原變量類型不變
例main(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d",x,i);}結果:x=3.600000,i=3較高類型向較低類型轉換時可能發(fā)生精度損失問題顯式轉換(強制轉換)第二十七頁,共四十六頁。28C運算符算術運算符:(+-*/%++--)關系運算符:(<<===>>=!=)邏輯運算符:((!&&||)位運算符:(<<>>~|^&)賦值運算符:(=及其擴展)條件運算符:(?:)逗號運算符:(,)指針運算符:(*&)求字節(jié)數:(sizeof)強制類型轉換:(類型)分量運算符:(.->)下標運算符:([])其它:(()-)2.4運算符和表達式第二十八頁,共四十六頁。29運算符功能與運算量關系要求運算量個數要求運算量類型運算符優(yōu)先級別結合方向結果的類型學習運算符應注意第二十九頁,共四十六頁。30基本算術運算符:+-*/%結合方向:從左向右優(yōu)先級:----->*/%----->+-(2)(3)(4)
說明:"-"可為單目運算符時,右結合性兩整數相除,結果為整數%要求兩側均為整型數據例5/2=-5/2.0=例5%2=-5%2=1%10=
5%1=5.5%2算術運算符和表達式2-2.51-110()第三十頁,共四十六頁。31作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)例j=3;k=++j;j=3;k=j++;j=3;printf("%d",++j);j=3;printf("%d",j++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4自增、自減運算符++--
第三十一頁,共四十六頁。32作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)說明:++--不能用于常量和表達式,如5++,(a+b)++++--結合方向:自右向左優(yōu)先級:-++-------->*/%----->+-
(2)(3)(4)例-i++-(i++)i=3;printf("%d",-i++);//-3
例-i++i=3;printf("%d",-i++);
自增、自減運算符++--(注意可讀性)例i+++i+++j;(i++)+(i++)+j;--i+i+j;i++;i++;例i+++j;i+++j;(i++)+j;----i+j;i=i+1;第三十二頁,共四十六頁。33簡單賦值運算符符號:=格式:變量標識符=表達式作用:將一個數據(常量或表達式)賦給一個變量復合賦值運算符種類:+=-=*=/=%=《=》=&=^=|=含義:exp1op=exp2
exp1=exp1opexp2a+=3a=a+3x*=yx=x*yx%=y+3x=x%(y+3)例a=3;d=func();c=d+2;賦值運算符和表達式第三十三頁,共四十六頁。34結合方向:自右向左優(yōu)先級:14左側必須是變量,不能是常量或表達式賦值表達式的值與變量值相等,且可嵌套賦值轉換規(guī)則:使賦值號右邊表達式值自動轉換成其左邊變量的類型例3=x-2*y;a+b=3;例
floatf;inti=10;f=I;//則
f=10.0例inti;i=2.56;//結果i=2;例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達式值為5,a,b,c值為5//b=5;a=5//表達式值11,c=6,a=11//表達式值10,a=10,b=4,c=6//表達式值5,a=5,b=10,c=2說明(1):
第三十四頁,共四十六頁。35
結合方向:自右向左優(yōu)先級:12
左側必須是變量,不能是常量或表達式賦值表達式的值與變量值相等,且可嵌套賦值轉換規(guī)則:使賦值號右邊表達式值自動轉換成其左邊變量的類型例:a=12;a+=a-=a*a例:inta=2;a%=4-1;a+=a*=a-=a*=3;//a=-264等價于a=a+(a=a-(a*a))//a=0等價于a=a+(a=a*(a=a-(a=a*3)))說明(2):
第三十五頁,共四十六頁。36形式:表達式1,表達式2,……表達式n結合性:從左向右優(yōu)先級:15逗號表達式的值:等于表達式n的值用途:常用于循環(huán)for語句中例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a例a=1;b=2;c=3;printf("%d,%d,%d",a,b,c);printf("%d,%d,%d",(a,b,c),b,c);//a=15,表達式值60//a=15,表達式值20//賦值表達式,表達式值18,x=18//逗號表達式,表達式值18,x=3//1,2,3//3,2,3逗號運算符和表達式例:/*ch2_6.c*/#include<stdio.h>main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}運行結果:x=3第三十六頁,共四十六頁。37關系運算符種類:<<===>=>!=結合方向:自左向右優(yōu)先級別:<<=>>===!=優(yōu)先級6(高)優(yōu)先級7(低)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)關系表達式的值:是邏輯值"真"或"假",用1和0表示例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表達式值1//表達式值1//表達式值0//d=1//f=0關系運算符和表達式第三十七頁,共四十六頁。38例若a=0;b=0.5;x=0.3;
則a<=x<=b的值為0例5>2>7>8在C中是允許的,值為0例inti=1,j=7,a;a=i+(j%4!=0);則a=2例‘a’>0結果為‘A’>100結果為10關系運算注意(1)第三十八頁,共四十六頁。39例注意區(qū)分"="與"=="inta=0,b=1;if(a=b)printf("aequaltob");elseprintf("anotequaltob");例應避免對實數作相等或不等的判斷如1.0/3.0*3.0==1.0結果為可改寫為:fabs(1.0/3.0*3.0-1.0)<1e-60關系運算注意(2)第三十九頁,共四十六頁。40ab!a!ba&&ba||b真假真假假假真真邏輯運算符種類:!&&||邏輯運算真值表C語言中,運算量:
0表示"假",非0表示"真",
運算結果:0表示"假",
1表示"真",真假假假假假真真假假真真真假真真邏輯運算符和表達式(1)第四十頁,共四十六頁。41!(2)&&(11)||(12)高低例a<=x&&x<=b
a>b&&x>ya==b||x==y!a||a>b優(yōu)先級:結合方向:!:從右向左&&:從左向右||:從左向右//(a<=x)&&(x<=b)//(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)邏輯運算符和表達式(2)第四十一頁,共四十六頁。42!(2)&&(11)||(12)高低優(yōu)先級:結合方向:!:從右向左&&:從左向右||:從左向右例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值為1值為0值為1值為1值為1值為1//(5>3)&&2||(8<(4-(!0)))
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度競業(yè)禁止企業(yè)合規(guī)審查服務協議3篇
- 二零二五年度醫(yī)療耗材采購供貨合同模板3篇
- 二零二五年度智能化公司單方解除勞動合同合同3篇
- 2025年度年度知識產權保護商標轉讓合同模板3篇
- 二零二五年度退股風險評估與管理協議3篇
- 2025農村土地永久轉讓與農村基礎設施建設合同
- 2025年度養(yǎng)生館合伙人項目投資與管理合同3篇
- 2025年度農村土地租賃與農業(yè)觀光旅游合作協議
- 2025年度礦山礦產資源評估與交易合同3篇
- 二零二五年度新材料研發(fā)員工合作協議書3篇
- 人教五年級英語上冊2011版五年級英語上冊《Lesson17》教案及教學反思
- 交換機安裝調試記錄表實用文檔
- 理性思維作文素材800字(通用范文5篇)
- 口腔頜面外科學 09顳下頜關節(jié)疾病
- 應急物資清單明細表
- 房地產估計第八章成本法練習題參考
- 《社會主義核心價值觀》優(yōu)秀課件
- 《妊娠期糖尿病患者個案護理體會(論文)3500字》
- 《小學生錯別字原因及對策研究(論文)》
- 便攜式氣體檢測報警儀管理制度
- 酒店安全的管理制度
評論
0/150
提交評論