版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1高級(jí)語(yǔ)言程序設(shè)計(jì)2教師:胡全辦公室:科研樓B250E-mail:huquan@3教材、參考書教材
C語(yǔ)言程序設(shè)計(jì)第三版陳文宇黃迪明等電子科技大學(xué)出版社參考書
C程序設(shè)計(jì)第三版譚浩強(qiáng)編著清華大學(xué)出版社C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)第三版
譚浩強(qiáng)清華大學(xué)出版社C程序設(shè)計(jì)語(yǔ)言第二版徐寶文譯
B.W.Kernighan&D.M.Rithie著,機(jī)械工業(yè)出版社課時(shí)及課程成績(jī)組成課時(shí)安排授課:24學(xué)時(shí)上機(jī):40學(xué)時(shí)(第6周起)平時(shí)30%+期中10%+期末考試60%5課程學(xué)習(xí)要求
課前做好預(yù)習(xí),鼓勵(lì)自學(xué)。教師講解難點(diǎn)和重點(diǎn)作為學(xué)習(xí)引導(dǎo)。保持課堂安靜,認(rèn)真聽課、積極思考。認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè)。重視上機(jī)實(shí)踐,有效利用上機(jī)時(shí)間。培養(yǎng)基本的編程能力,形成良好的編程風(fēng)格。6死的偉大的人,永遠(yuǎn)沒有失敗。逆境是到達(dá)真理的一條道路。拜倫的女兒ADA-應(yīng)用數(shù)學(xué)家第一位軟件工程師7ENIAC,1946第一臺(tái)通用電子計(jì)算機(jī)GUI個(gè)人計(jì)算機(jī)(PC)XeroxPARC-mid1970’sAltoBravoWYSIWYGtexteditor.BravoXMicrosoftWordprototype.LaurelE-mail.NeptunefilemanagerPressfileprintingmanager.Sil.paintXeroxStar-1981商業(yè)失敗,但技術(shù)領(lǐng)先384kharddisk$15kcostClosedarchitectureLackingkeyfunctionality1981IBMPC微型計(jì)算機(jī)-家庭計(jì)算機(jī)-個(gè)人計(jì)算機(jī)(PC)IBM個(gè)人計(jì)算機(jī)非常成功IBMPC:DonEstridge,13人團(tuán)隊(duì)AppleLisa-1982BasedonideasofStarMorepersonality,notonlyofficetoolsLisaWrite:wordLisaCalc:excelLisaGraph:graphLisaList:PlanningmanagerLisaProject:ProjectScheduleLisaDraw:imageLisaTerminal:communication商業(yè)失敗AppleMacintosh-1984非原創(chuàng),smartcopier價(jià)值點(diǎn)Aggressivepricing-$2500FriendlyGUIThirdpartycomponentsHigh-qualifiedLaserWriterprinterApplications:MacWrite、MacDrawNewapps:Pagemaker,Word,Excel數(shù)字化時(shí)代通信領(lǐng)域:程控交換機(jī)取代模擬交換機(jī)GSM和CDMA取代模擬移動(dòng)通信系統(tǒng)圖像領(lǐng)域:數(shù)字相機(jī)普及膠卷行業(yè)和洗印業(yè)……影像領(lǐng)域:數(shù)字?jǐn)z像機(jī)取代膠片攝像機(jī)數(shù)字影像編輯數(shù)字觀影設(shè)備取代膠片觀影設(shè)備從根本上說,以計(jì)算機(jī)為中心的數(shù)字技術(shù)革命改變了社會(huì)各個(gè)領(lǐng)域的基本面貌,改變了我們的生活習(xí)慣以及思維習(xí)慣雷達(dá)預(yù)警機(jī)X-47B投擲JDAM彈藥1920圖像識(shí)別和處理222324第一章C語(yǔ)言概述
C語(yǔ)言發(fā)展歷史
C語(yǔ)言特點(diǎn)
C程序格式和結(jié)構(gòu)特點(diǎn)
C程序上機(jī)步驟1.1C語(yǔ)言發(fā)展歷史251.1C語(yǔ)言發(fā)展歷史26VonNeumanArchitecture271.1C語(yǔ)言發(fā)展歷史程序設(shè)計(jì)語(yǔ)言的發(fā)展機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語(yǔ)言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過發(fā)送和接受消息發(fā)生聯(lián)系5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90
C語(yǔ)言發(fā)展過程
C語(yǔ)言是國(guó)際上廣泛流行的高級(jí)語(yǔ)言。C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的。B(BCPL)語(yǔ)言是1970年由美國(guó)貝爾實(shí)驗(yàn)室設(shè)計(jì)的,并用于編寫了第一個(gè)UNIX操作系統(tǒng),在PDP7上實(shí)現(xiàn)。優(yōu)點(diǎn):精練,接近硬件,缺點(diǎn):過于簡(jiǎn)單,數(shù)據(jù)無(wú)類型。1973年貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言,對(duì)B取長(zhǎng)補(bǔ)短,并用它改寫了原來(lái)用匯編編寫的UNIX(即UNIX第5版),但僅在貝爾實(shí)驗(yàn)室使用。1975年UNIX第6版發(fā)布,C的優(yōu)點(diǎn)引起關(guān)注。1977年出現(xiàn)了《可移植C語(yǔ)言編譯程序》,推動(dòng)了UNIX在各種機(jī)器上實(shí)現(xiàn),C語(yǔ)言也得到推廣,UNIX和C的發(fā)展相輔相成。1978年BrianW.Kernighan和DennisM.Ritchie合著了影響深遠(yuǎn)的名著《TheCProgrammingLanguage》,被稱為標(biāo)準(zhǔn)C。之后,C語(yǔ)言先后移植到大、中、小、微型計(jì)算機(jī)上,已獨(dú)立于UNIX和PDP,風(fēng)靡世界,成為應(yīng)用最廣泛的幾種計(jì)算機(jī)語(yǔ)言之一。UNIX是我們的杰作,呵呵!BrianW.KernighanKenThompson和DennisRitchie我參加了UNIX、C、語(yǔ)言開發(fā),也寫書,厲害吧,呵呵!1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn)ANSIC,比標(biāo)準(zhǔn)C有了更大的發(fā)展。1988年K&R按照ANSIC修改了他們的《TheCProgrammingLanguage》。1989年,ANSI公布了ANSIX3.159-1989。1990年,國(guó)際標(biāo)準(zhǔn)化組織接受了ANSIC為ISOC的標(biāo)準(zhǔn)(ISO9899:1990)。1994年,ISO又修訂了C語(yǔ)言標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSIC為基礎(chǔ)進(jìn)行開發(fā)的。ISO/IEC9899:1999,是1999年出的C語(yǔ)言標(biāo)準(zhǔn)。再加上2001年和2004年經(jīng)過兩次技術(shù)修正ISO/IEC9899:1999與兩次技術(shù)修正被統(tǒng)稱為C99標(biāo)準(zhǔn)。2011年12月8日,ISO正式發(fā)布了新的C語(yǔ)言的新標(biāo)準(zhǔn)C11,之前被稱為C1X,官方名稱為ISO/IEC9899:2011。目前大多數(shù)的編譯系統(tǒng)并沒有完全的實(shí)現(xiàn)C11標(biāo)準(zhǔn)說明:
不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言功能和語(yǔ)法規(guī)則略有差別,因此讀者應(yīng)了解所用的C語(yǔ)言編譯系統(tǒng)的特點(diǎn)(可以參閱相關(guān)手冊(cè))。本課程以ANSIC為基礎(chǔ)?;冢玫恼Z(yǔ)言C++:包含了C的所有特性,增加了類和其他特性支持面向?qū)ο缶幊?。Java:基于C++,但拋棄了其復(fù)雜和奇異性,增加了接口技術(shù),純面向?qū)ο缶幊陶Z(yǔ)言。C#:基于C++和Java發(fā)展起來(lái)的新語(yǔ)言。Perl:腳本語(yǔ)言,采用了C的許多特性,具有了C的強(qiáng)大能力和靈活性。解釋1:C++是由于開發(fā)大型應(yīng)用軟件的需要而產(chǎn)生的,并不是所有的人都要去編寫大型軟件。解釋2:面向?qū)ο蟮幕A(chǔ)是面向過程。C++是面向?qū)ο蟮恼Z(yǔ)言,C是面向過程的,學(xué)起來(lái)比C語(yǔ)言困難得多,所以不太適合程序設(shè)計(jì)的初學(xué)者。問題:既然有了面向?qū)ο蟮腃++語(yǔ)言,為什么還要學(xué)習(xí)C語(yǔ)言?C語(yǔ)言特點(diǎn)語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。32個(gè)關(guān)鍵字、9種控制語(yǔ)句,程序形式自由運(yùn)算符豐富。34種運(yùn)算符數(shù)據(jù)類型豐富,具有現(xiàn)代語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu)。具有結(jié)構(gòu)化的控制語(yǔ)句,是完全模塊化和結(jié)構(gòu)化的語(yǔ)言。語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。允許直接訪問物理地址,能進(jìn)行位操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可直接對(duì)硬件進(jìn)行操作。兼有高級(jí)和低級(jí)語(yǔ)言的特點(diǎn)。目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。只比匯編程序生成的目標(biāo)代碼效率低10%-20%。程序可移植性好(與匯編語(yǔ)言比)?;旧喜蛔鲂薷木湍苡糜诟鞣N型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。具有標(biāo)準(zhǔn)庫(kù);功能強(qiáng)大C語(yǔ)言缺點(diǎn)容易隱藏錯(cuò)誤可能難以理解大程序維護(hù)和修改較困難(與面向?qū)ο蟪绦蛳啾龋┙鉀Q辦法:利用庫(kù)采用編碼規(guī)范緊貼標(biāo)準(zhǔn)避免模糊和復(fù)雜代碼401.2C語(yǔ)言特點(diǎn)語(yǔ)言簡(jiǎn)潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化允許直接訪問物理地址
生成目標(biāo)代碼質(zhì)量高可移植性好中級(jí)語(yǔ)言41autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile32個(gè)關(guān)鍵字
(由系統(tǒng)定義,不能重作其它定義)
42if()~else~for()~while()~do~while()continuebreakswitchgotoreturn9種控制語(yǔ)句43算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-34種運(yùn)算符44C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union451.3C程序格式和結(jié)構(gòu)特點(diǎn)/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,World!”);}注釋編譯預(yù)處理函數(shù)語(yǔ)句輸出:Hello,World!例:第一個(gè)C程序Hello,World!46/*example1.2calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){
int
a,b,sum;
a=10;b=24;sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int
add(int
x,inty){
int
z;
z=x+y;
return(z);}運(yùn)行結(jié)果:sum=34函數(shù)語(yǔ)句預(yù)處理命令注釋47C格式特點(diǎn)習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書寫格式main(){
……………….………………
…………..…………..
……………….
………………………….
……………….………………..}main(){
inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn){}對(duì)齊有足夠的注釋有合適的空行48C結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句C程序由語(yǔ)句組成用“;”作為語(yǔ)句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼編譯預(yù)處理命令例:/*Thisisthemain/*ofexample1.1*/*/非法491.4C程序的上機(jī)步驟編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序*.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe50TurboC集成開發(fā)環(huán)境配置要求UNIX,PC-DOS,MS-DOS,UCDOS操作系統(tǒng)硬盤容量約2M,448KRAM運(yùn)行空間安裝TurboC創(chuàng)建子目錄Install若不是可安裝盤,將文件拷貝到對(duì)應(yīng)的目錄下TC*.*INCLUDELIB*.*SYS*.*51進(jìn)入TurboCD:\TC>TC.exe主控菜單文件操作FILE:New
Load
Save
Writeto編輯操作EDIT:插入/修改
塊
查找/替換編譯鏈接COMPILE
LINK
MAKE執(zhí)行RUN退出TurboCAlt+xAlt+F,Q幫助HelpF1Ctrl+F152基本操作:F10調(diào)用主菜單F2存盤F3打開Alt+F9CompileCtrl+F9RunAlt+F5UserScreenTC常用熱鍵文本編輯:移動(dòng)光標(biāo)PgUp,PgDn上下翻頁(yè)Ctrl+PgUp,Ctrl+PgDn文件首尾HomeEndDeleteInsertBackspace塊操作:Ctrl+KB塊開始標(biāo)記Ctrl+KK塊結(jié)束標(biāo)記Ctrl+KC塊拷貝Ctrl+KV塊移動(dòng)Ctrl+KY塊刪除
Ctrl+KH塊隱藏程序調(diào)試:F8StepoverF7TraceintoF4GotoCursorCtrl+F7AddWatchCtrl+F8ToggleBreakpointCtrl+F2ProgramReset窗口操作:F5窗口縮放F6窗口切換§2-3運(yùn)行C程序的步驟和方法一、運(yùn)行C程序的步驟上機(jī)輸入與編輯源程序預(yù)處理器Preprocessor:執(zhí)行以#開頭的指令,類似于編輯器,可以添加和修改源程序。對(duì)源程序進(jìn)行編譯與庫(kù)函數(shù)鏈接運(yùn)行目標(biāo)程序預(yù)處理器CPPHello.c源程序(文本)Hello.i被修改的源程序(文本)編譯器CCLHello.s匯編程序(文本)Hello.o可執(zhí)行位目標(biāo)程序(文本)#include<stdio.h>void
main(){
printf("Hello,ThisisaCprogram.\n");}匯編器ASHello.o可重定位目標(biāo)程序(文本)鏈接器LDprintf.o上機(jī)運(yùn)行C程序的方法目前使用的大多數(shù)C編譯系統(tǒng)都是集成環(huán)境(IDE)的??梢杂貌煌木幾g系統(tǒng)對(duì)C程序進(jìn)行操作??梢杂肰isualC++對(duì)C程序進(jìn)行編譯。本課程采用的VisualStudio2010的集成開發(fā)環(huán)境。輕量級(jí)的IED推薦:C-Free(/cfree_ch/index.htm)GCC(GNUCompilerCollection)是最流行的編譯器。GCC是Linux環(huán)境下的編譯器。Cygwin是一個(gè)在windows平臺(tái)上運(yùn)行的Linux模擬環(huán)境。MinGW是指只用自由軟件來(lái)生成純粹的Win32可執(zhí)行文件的編譯環(huán)境,它是MinimalistGNUonWindows的略稱。例:VisualStudio2010
1、文件-新建-項(xiàng)目。選擇“Win32控制臺(tái)應(yīng)用程序”,輸入“名稱”,點(diǎn)“確定”。2、點(diǎn)“下一步”,在下面窗口選擇“空項(xiàng)目”,點(diǎn)“完成”3、點(diǎn)鼠標(biāo)右鍵,添加-新建項(xiàng)4、在下面窗口選擇“C++文件(.cpp)”,名稱輸入“hello.c”,點(diǎn)“添加”。5、在hello.c中輸入源程序,點(diǎn)“保存”,#include<stdio.h>voidmain(){printf("Hello,ThisisaCprogram.\n");system("pause");//增加該語(yǔ)句使字符界面可以暫時(shí)停留}6、點(diǎn)菜單:調(diào)試-啟動(dòng)調(diào)試(或F5),運(yùn)行程序。61補(bǔ)充:C程序設(shè)計(jì)預(yù)備知識(shí)數(shù)的表示及進(jìn)制轉(zhuǎn)換字節(jié)和位原碼、反碼和補(bǔ)碼62數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號(hào)基:數(shù)碼的個(gè)數(shù)權(quán):每一位所具有的值數(shù)制二進(jìn)制八進(jìn)制十進(jìn)制十六進(jìn)制計(jì)算機(jī)中數(shù)的表示及進(jìn)制轉(zhuǎn)換63數(shù)制進(jìn)位計(jì)數(shù)制有三個(gè)要素:
數(shù)位——數(shù)碼在一個(gè)數(shù)的位置
基數(shù)——某計(jì)數(shù)制中,數(shù)碼的個(gè)數(shù)
位權(quán)——某計(jì)數(shù)制中,數(shù)位中數(shù)碼所代表數(shù)值的大小等于這數(shù)碼乘上一個(gè)固定的值,該值稱為位權(quán)。
一個(gè)十進(jìn)制數(shù)可以按位權(quán)展開成一個(gè)多項(xiàng)式,例如:
(1234)10=1×103+2×102+3×101+4×100
計(jì)算機(jī)內(nèi)部使用二進(jìn)制數(shù)。因?yàn)榘诉M(jìn)制和十六進(jìn)制能方便地與二進(jìn)制實(shí)現(xiàn)轉(zhuǎn)換,所以常用八進(jìn)制和十六進(jìn)制進(jìn)行輸入或輸出。64由數(shù)字0,1組成,基數(shù)為2,逢二進(jìn)一。一個(gè)二進(jìn)制數(shù)可按位權(quán)展開成一個(gè)多項(xiàng)式,例如:
(11.101)2=1×21+1×20+1×2-1+0×2-2+1×2-3二進(jìn)制65八進(jìn)制由數(shù)字07組成,基數(shù)為8,逢八進(jìn)一。一個(gè)八進(jìn)制數(shù)可按位權(quán)展開成一個(gè)多項(xiàng)式,例如:
(274)8
=2×82+7×81+4×8066十六進(jìn)制由數(shù)字09和英文字母A至F組成,用A表示10,B表示11……F表示15,基數(shù)為16,逢十六進(jìn)一。一個(gè)十六進(jìn)制數(shù)可按位權(quán)展開成一個(gè)多項(xiàng)式,例如:
(2EA6)16
=2×163+14×162+10×161+6×16067數(shù)制基權(quán)表示數(shù)碼特點(diǎn)10o,101,102,…十進(jìn)制數(shù)0~910逢十進(jìn)一二進(jìn)制數(shù)0~122o,21,22,…逢二進(jìn)一八進(jìn)制數(shù)0~788o,81,82,…逢八進(jìn)一十六進(jìn)制數(shù)0~9,A~F,a~f1616o,161,162,…逢十六進(jìn)一十進(jìn)制:4956=4103+9102+5101+610o二進(jìn)制:1011=123+022+121+12o十六進(jìn)制:81AE=8163+1162+10161+1416o八進(jìn)制:4275=483+282+781+58o68各種進(jìn)制之間的轉(zhuǎn)換二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制方法:按權(quán)相加69各種進(jìn)制之間的轉(zhuǎn)換(整數(shù))十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為0例把十進(jìn)制數(shù)59轉(zhuǎn)換成二進(jìn)制數(shù)5922921427232120(59)10=(111011)2110111111011余余余余余余例把十進(jìn)制數(shù)159轉(zhuǎn)換成八進(jìn)制數(shù)1598198280(159)10=(237)8237余7余3余2例把十進(jìn)制數(shù)459轉(zhuǎn)換成十六進(jìn)制數(shù)4591628161160(459)10=(1CB)161CB余11余12余170二、八、十六進(jìn)制與十進(jìn)制數(shù)的對(duì)照表十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制000011112102231133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F1610000201071二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換二進(jìn)制轉(zhuǎn)換成八進(jìn)制:從右向左,每3位一組(不足3位左補(bǔ)0),轉(zhuǎn)換成八進(jìn)制八進(jìn)制轉(zhuǎn)換成二進(jìn)制:用3位二進(jìn)制數(shù)代替每一位八進(jìn)制數(shù)例(1101001)2=(001,101,001)2=(151)8例(246)8=(010,100,110)2=(10100110)2000~0001~1010~2011~3100~4101~5110~6111~772例:將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換成二進(jìn)制數(shù)結(jié)果為:(0.6875)10=(0.1011)2××××0.687521.3750整數(shù)部分為10.375020.7500整數(shù)部分為00.750021.5000整數(shù)部分為10.500021.0000整數(shù)部分為173例:將十進(jìn)制數(shù)117.6875轉(zhuǎn)換成二進(jìn)制數(shù)。
(117.6875)10=(117)10+(0.6875)10=(1110101)2+(0.1011)2=(1110101.1011)274內(nèi)存以字節(jié)為單元組成每個(gè)字節(jié)有一個(gè)地址一個(gè)字節(jié)一般由8個(gè)二進(jìn)制位組成每個(gè)二進(jìn)位的值是0或101234567012345678910……...字節(jié)和位75計(jì)算機(jī)的數(shù)據(jù)單位在計(jì)算機(jī)內(nèi)部,數(shù)據(jù)是以二進(jìn)制形式存儲(chǔ)和運(yùn)算的。數(shù)據(jù)采用的單位有位、字節(jié)和字?!裎?bit)是指二進(jìn)制數(shù)的一個(gè)位●8個(gè)二進(jìn)制位作為一個(gè)字節(jié),即
1B(Byte)=8bit●字是由一個(gè)或若干個(gè)字節(jié)組成的存儲(chǔ)單元●組成一個(gè)字的二進(jìn)制位數(shù)叫做該字的字長(zhǎng)●存儲(chǔ)器的容量:B,KB(1K=1024B),MB(1M=1024K),GB(1G=1024M),TB(1T=1024G)76ASCII碼ASCII碼是通用的字符編碼例如:字母A的ASCII碼為1000001(十進(jìn)制為65)
每個(gè)ASCII碼用一個(gè)字節(jié)表示,最高二進(jìn)制位為077漢字的編碼
1.
區(qū)位碼和國(guó)標(biāo)碼例如,漢字“啊”的區(qū)位碼為1601,轉(zhuǎn)換成16進(jìn)制數(shù)為1001H,則國(guó)標(biāo)碼3021H
。
2.
漢字內(nèi)碼(機(jī)內(nèi)碼)例如,漢字“啊”的區(qū)位碼為1601,轉(zhuǎn)換成16進(jìn)制數(shù)為1001H,則機(jī)內(nèi)碼B0A1H。
3.
漢字外碼(漢字輸入碼)78
帶符號(hào)數(shù)的表示真值:用+、-分別表示正、負(fù)符號(hào)的帶符號(hào)的數(shù)據(jù),如:(-1011)2、(+56)10、(-67)10
。真值是數(shù)的原始形式機(jī)器數(shù):符號(hào)被數(shù)碼化的帶符號(hào)數(shù)據(jù)的表示,如:(1011)2表示-3;(0011)2表示+3最高有效位MSB表示符號(hào)位(Signbit)
正數(shù)用0,負(fù)數(shù)用1表示帶符號(hào)數(shù)的三種常用編碼方式:
原碼(Signed-Magnitude)反碼(One’sComplement)補(bǔ)碼(Two’sComplement)79符號(hào)數(shù)值(原碼)表示法原碼:若數(shù)長(zhǎng)度N則最高位為符號(hào)位;正數(shù)用0,負(fù)數(shù)用1表示。其余N-1位為數(shù)值位,為二進(jìn)制數(shù),位數(shù)不足時(shí)高位補(bǔ)0零有兩種表示(+0、–0)n位原碼表示范圍:
–(2n-1–1)∽+(2n-1–1)80反碼表示法反碼:正數(shù)時(shí),與原碼相同;負(fù)數(shù)時(shí),符號(hào)位不變,數(shù)值位按位求反原碼數(shù)值
反碼
按位取反零有兩種表示(+0、–0)n位反碼表示范圍:–(2n-1–1)∽+(2n-1–1)81補(bǔ)碼表示法零只有一種表示n位補(bǔ)碼表示范圍:
–2n-1-+(2n-1–1)原碼數(shù)值
補(bǔ)碼數(shù)值
按位取反再加1補(bǔ)碼:正數(shù)時(shí),與原碼相同;負(fù)數(shù)時(shí),在反碼的基礎(chǔ)上加1,或者從原碼直接求:符號(hào)位不變,最低數(shù)值位開始,出現(xiàn)第一個(gè)1之前,不變!其余數(shù)值位按位求反82先求(65)10=(?)22232216余08422余0余0余0余0低位652余121余1將得到的二進(jìn)制碼用0補(bǔ)足數(shù) 值位的位數(shù)—這里為15,得到:(65)10=(000000001000001)2對(duì)正數(shù),符號(hào)位(最高位)補(bǔ)0,且其原碼=反碼=補(bǔ)碼,則:(+65)10的原碼=反碼=補(bǔ)碼=0000000001000001對(duì)負(fù)數(shù),符號(hào)位(最高位)補(bǔ)1,則:(-65)10原碼=1000000001000001(-65)10的反碼=1111111110111110(-65)10的補(bǔ)碼=1111111110111111例:設(shè)機(jī)器碼長(zhǎng)度為16,求十進(jìn)制數(shù)+65、-65的原碼、反碼和補(bǔ)碼831.(11110110)原碼=(?)真值
因?yàn)槭窃a,去掉符號(hào)位后直接將數(shù)值部分轉(zhuǎn)換為十進(jìn)制數(shù)據(jù): (1110110)2=(64+32+16+4+2)10=(118)10
符號(hào)位為1,說明為負(fù)數(shù),所以:(11110110)原碼=(-118)真值2.(11110110)反碼=(?)真值
先將反碼轉(zhuǎn)換成原碼——
符號(hào)位不變,數(shù)值部分按位取,得: (11110110)反碼=(10001001)原碼
按1中步驟將該原碼轉(zhuǎn)換為十進(jìn)制數(shù):(10001001)原碼=(-9)真值3.(11110110)補(bǔ)碼=(?)真值
對(duì)負(fù)數(shù)而言,數(shù)值部分相同的補(bǔ)碼比反碼小1,得: (11110110)補(bǔ)碼=(-10)真值例:設(shè)機(jī)器碼長(zhǎng)度為8848位二進(jìn)制數(shù)的不同含義8位二進(jìn)制數(shù)據(jù)十六進(jìn)制數(shù)無(wú)符號(hào)十進(jìn)制數(shù)原碼反碼補(bǔ)碼0000000000H0+0+0+00000000101H1+1+1+10000001002H2+2+2+2………………………………
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省鎮(zhèn)江市丹徒區(qū)高中政治 第九課 唯物辯證法的實(shí)質(zhì)與核心教案 新人教版必修4
- 二年級(jí)品德與生活上冊(cè) 誠(chéng)實(shí)故事會(huì)教案2 北師大版
- 2024秋八年級(jí)物理上冊(cè) 第4章 光的折射 透鏡 第一節(jié) 光的折射教案2(新版)蘇科版
- 2024年秋九年級(jí)歷史上冊(cè) 第2單元 古代歐洲文明 第4課 希臘城邦和亞歷山大帝國(guó)教案 新人教版
- 2024-2025學(xué)年高中英語(yǔ) Module 5 Newspapers and Magazines教案1 外研版必修2
- 2024年五年級(jí)語(yǔ)文上冊(cè) 第四單元 13 少年中國(guó)說(節(jié)選)配套教案 新人教版
- 2023六年級(jí)數(shù)學(xué)下冊(cè) 第4單元 比例 2正比例和反比例練習(xí)課(正比例和反比例)教案 新人教版
- 換熱站管理制度
- 自建房屋外包合同(2篇)
- 設(shè)計(jì)師求職簡(jiǎn)歷幻燈片模板
- Unit 2 Section B (1a-1d)教學(xué)設(shè)計(jì) 2023-2024學(xué)年人教版英語(yǔ)七年級(jí)上冊(cè)
- 黑龍江省綏化市2024屆中考數(shù)學(xué)試卷(含答案)
- 汽車臨時(shí)過戶協(xié)議書范本
- 2024年新冀教版一年級(jí)上冊(cè)數(shù)學(xué)課件 我上學(xué)了 2分享幼兒園生活
- 強(qiáng)度計(jì)算.結(jié)構(gòu)分析:屈曲分析的有限元方法
- 事業(yè)單位考試題庫(kù):公文寫作能力測(cè)試試題及答案
- 2024年中國(guó)電信筆試題庫(kù)
- 老年心房顫動(dòng)診治中國(guó)專家共識(shí)(2024)解讀
- 醫(yī)療器械技術(shù)方案(2篇)
- 體育用品供應(yīng)分銷意向書
- S7-1200PLC技術(shù)及應(yīng)用 課件 項(xiàng)目7 跑馬燈控制
評(píng)論
0/150
提交評(píng)論