第一章 c語言概述_第1頁
第一章 c語言概述_第2頁
第一章 c語言概述_第3頁
第一章 c語言概述_第4頁
第一章 c語言概述_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第一章 c語言概述教材參考書課時(shí)安排C程序設(shè)計(jì)(第三版)譚浩強(qiáng) 清華大學(xué)出版社1、C語言程序設(shè)計(jì)教程 (第二版) 王敬華 清華大學(xué)出版社2、The C Programming Language Kernighan 清華大學(xué)出版社授課 :44學(xué)時(shí)上機(jī) :16學(xué)時(shí)教材、參考書與課時(shí)安排要真正來回答這一問題,我們有必要了解程序設(shè)計(jì)語言的發(fā)展歷史,知道C語言是屬于那種類型的語言;C語言是如何產(chǎn)生和發(fā)展的,C語言的特點(diǎn)有哪些,它應(yīng)用在哪些方面等,這樣我們就可以做到學(xué)習(xí)目的明確,才能有意識地去學(xué)好C語言程序設(shè)計(jì)。c語言概述理由1:因?yàn)镃語言流行.理由2:因?yàn)镃語言考研時(shí)必考。理由3: 因?yàn)镃語言在各種程序

2、考試中首當(dāng)其中。理由4:因?yàn)樗潜匦拚n,是老師逼的,不學(xué)不能拿學(xué)分 理由n: 為什么我們要學(xué)習(xí)C語言呢?c語言概述了解程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn);了解C語言的發(fā)展歷史及特點(diǎn)和應(yīng)用;掌握C語言程序的基本結(jié)構(gòu);掌握編寫C程序的基本步驟和調(diào)試過程。 學(xué)習(xí)目的:學(xué)習(xí)內(nèi)容程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)1C語言的發(fā)展及其特點(diǎn)和應(yīng)用2C語言程序的基本結(jié)構(gòu)3編制C語言程序的基本步驟4c語言概述1.1 程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)機(jī)器語言匯編語言面向?qū)ο蟾呒壵Z言面向過程CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成。用助記符號描述的指令系統(tǒng),如ADD MOV等。 種類繁多程序設(shè)計(jì)是數(shù)據(jù)被加工的過程??陀^世界可以分類,對

3、象是類的實(shí)例,對象是數(shù)據(jù)和方法的封裝,對象間通過發(fā)送和接受消息發(fā)生聯(lián)系。面向機(jī)器的語言1.1 程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)ALGOL6052 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL68PascalModula-2CPL BCPL BCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN90學(xué)習(xí)內(nèi)容C語言的發(fā)展及其特點(diǎn)和應(yīng)用2程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)1C語言

4、程序的基本結(jié)構(gòu)3編制C語言程序的基本步驟4c語言概述C語言發(fā)展史1.2 C語言的發(fā)展及其特點(diǎn)和應(yīng)用一種面向問題的高級語言ALGOL 60語言63年劍橋大學(xué)Combined Programming LanguageCPL語言67年劍橋大學(xué)Matin Richards對CPL語言進(jìn)行了簡化BCPL語言70年貝爾實(shí)驗(yàn)室Ken Thompson將BCPL進(jìn)行了修改B語言73年貝爾實(shí)驗(yàn)室D.M.Ritchie最終設(shè)計(jì)出了一種新的語言C語言C語言發(fā)展史產(chǎn)生目的UNIX操作系統(tǒng)產(chǎn)生時(shí)間1972-1973產(chǎn)生地點(diǎn)美國貝爾實(shí)驗(yàn)室設(shè)計(jì)人Ken.ThompsonDennis.M.RitchieC語言1.2 C語言的

5、發(fā)展及其特點(diǎn)和應(yīng)用1.2 C語言的發(fā)展及其特點(diǎn)和應(yīng)用Ritchie和Thompson在開發(fā)UNIX接受美國國家技術(shù)勛章 1990年國際標(biāo)準(zhǔn)的ANSI C87 ANSI C: 1987年ANSI C: 1983年標(biāo)準(zhǔn)C: K&R合著The C Programming LanguageC語言的標(biāo)準(zhǔn)1.2 C語言的發(fā)展及其特點(diǎn)和應(yīng)用Borland C+Microsoft Visual C+Watcom C+Turbo CBorland C+ BuilderC語言編譯軟件Microsoft CHigh C 本課程的內(nèi)容主要是應(yīng)用Turbo C+ 3.0,也可選用Visual C+ 6.0。1.

6、2 C語言的發(fā)展及其特點(diǎn)和應(yīng)用 簡潔緊湊、靈活方便 運(yùn)算符豐富 數(shù)據(jù)結(jié)構(gòu)豐富 C是結(jié)構(gòu)式語言 C語法限制不太嚴(yán)格、程序設(shè)計(jì)自由度大 C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作 C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高 C語言適用范圍大,可移植性好C語言一共只有32個(gè)關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。C的運(yùn)算符包含的范圍很廣泛,共有種34個(gè)運(yùn)算符。C語言把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C的運(yùn)算類型極其豐富表達(dá)式類型多樣化,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級語言中難以實(shí)現(xiàn)的運(yùn)算。 C的數(shù)據(jù)類

7、型有:整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。尤其是指針類型數(shù)據(jù),使用十分靈活和多樣化。 結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。一般的高級語言語法檢查比較嚴(yán),能夠檢查出幾乎所有的語法錯(cuò)誤。而C語言允許程序編寫者有較大的自由度。 C語言既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址

8、進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可以用來寫系統(tǒng)軟件。一般只比匯編程序生成的目標(biāo)代碼效率低1020%。C語言有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng),如DOS、WINDOWS、UNIX。也適用于多種機(jī)型,在一種計(jì)算機(jī)上編寫的程序,無須修改或經(jīng)過很少的修改,就可以在其它類型的計(jì)算機(jī)上運(yùn)行 C語言的特點(diǎn)1.2 C語言的發(fā)展及其特點(diǎn)和應(yīng)用C語言可以用來開發(fā)許多系統(tǒng)軟件和大型應(yīng)用軟件: 如UNIX,LINUX等操作系統(tǒng)。C語言可以用于對硬件進(jìn)行操作的場合: 如各種硬件設(shè)備的驅(qū)動(dòng)程序(象顯卡驅(qū)動(dòng)程序、打印機(jī)驅(qū)動(dòng) 程序等)一般都是用C語言編寫的。在圖形、圖像及動(dòng)畫處理方面,C語言具有絕對優(yōu)勢: 如

9、游戲軟件的開發(fā)主要就是使用C語言。通信程序的編制首選就是C語言。 C語言適用于多種操作系統(tǒng): 如WINDOWS、UNIX、LINUX等絕大多數(shù)操作系統(tǒng)都支持 C語言,其它高級語言未必能得到支持,所以在某個(gè)特定操 作系統(tǒng)下運(yùn)行的軟件用C語言編制是最佳選擇。C語言的應(yīng)用1.2 C語言的發(fā)展及其特點(diǎn)和應(yīng)用學(xué)習(xí)內(nèi)容C語言程序的基本結(jié)構(gòu)3程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)1C語言的發(fā)展及其特點(diǎn)和應(yīng)用2編制C語言程序的基本步驟4c語言概述1.3 C語言程序的基本結(jié)構(gòu)/* This is the first C program */#include void main ( ) printf (“This is a

10、C program!n);注釋信息預(yù)處理命令無返回值無參數(shù)、無返回值的主函數(shù)主函數(shù)名函數(shù)開始內(nèi)部函數(shù)名參數(shù)回車換行符函數(shù)調(diào)用函數(shù)體語句結(jié)束標(biāo)志函數(shù)結(jié)束 運(yùn)行結(jié)果: This is a C program!在C程序中,注釋由“/*”開始,由“*/”結(jié)束,可以實(shí)現(xiàn)多行注釋 。在C+程序中也可使用“/”進(jìn)行單行注釋。例如:/ 注釋信息 C語言規(guī)定:語句以分號結(jié)束 例1 最簡單的C程序。C語言的預(yù)處理命令都是以“#”號開頭。stdio.h是一個(gè)頭文件 C程序中允許插入若干行空行,它不影響程序的功能,同注釋一樣。為了程序的易讀性,在編寫C程序時(shí),根據(jù)需要可插入一定的空行。printf是C語言的內(nèi)部函數(shù)名

11、,因?yàn)樗竺娓? ),其功能是將“This is a C program!n”顯示在計(jì)算機(jī)的屏幕上(雙引號和n不顯示) main是主函數(shù)名,一個(gè)C語言程序有且僅有一個(gè)main函數(shù)。C程序執(zhí)行時(shí)就是從main函數(shù)開始,具體講就是從“”開始,到“”結(jié)束。 例2 計(jì)算輸入的兩個(gè)整數(shù)的和 。/* This is the second C program */#include void main ( ) int x, y, z; scanf (%d%d, &x, &y ); z = x + y; printf ( sum is %dn, z);數(shù)據(jù)類型名定義的變量名,以“,”分隔調(diào)用內(nèi)

12、部函數(shù),接受鍵盤輸入數(shù)據(jù)帶有三個(gè)參數(shù),以“,”分隔。&表示取變量的地址。調(diào)用內(nèi)部函數(shù),輸出計(jì)算的和數(shù)求和的值給Z假設(shè)輸入:10 20 運(yùn)行結(jié)果:sum is 301.3 C語言程序的基本結(jié)構(gòu)例3 計(jì)算輸入的兩個(gè)整數(shù)的較大值 。/* This is the third C program */#include void main ( ) int max (int x, int y); int a, b, c; scanf (%d%d, &a, &b); c = max (a, b); printf (max = %dn, c);int max (int x, int y)

13、 int z; if (x y) z = x; else z = y; return (z); 自定義函數(shù)聲明自定義函數(shù)調(diào)用自定義函數(shù)max帶兩個(gè)形參返回a、b中最大值c返回值為整型數(shù)假設(shè)輸入:10 20 運(yùn)行結(jié)果:max = 201.3 C語言程序的基本結(jié)構(gòu)C語言中變量和函數(shù)都有自己的標(biāo)識符。 標(biāo)識符就是一個(gè)名字,C語言規(guī)定標(biāo)識符只能由字母、數(shù)字 和下劃線三中字符構(gòu)成,并且第一個(gè)字符必須是字母或下劃線。標(biāo)識特點(diǎn): C語言中有一些特別的標(biāo)識符,它們的用途已經(jīng)事先規(guī)定好了,程序員不能再將它們另做它用。這些特別的標(biāo)識符被稱為關(guān)鍵字(也稱保留字)。到目前為止,我們見過的關(guān)鍵字有void、int、ma

14、in、if、else、return。以后隨著學(xué)習(xí)的深入,我們將會(huì)遇到越來越多的關(guān)鍵字(C語言關(guān)鍵字可參考附錄B)。1.3 C語言程序的基本結(jié)構(gòu)結(jié)構(gòu)特點(diǎn): C程序是由多個(gè)函數(shù)構(gòu)成的。 每個(gè)C程序中有且只有一個(gè)main函數(shù)。 main函數(shù)是程序的入口和出口。 不使用行號,無程序行的概念。 C程序中可加任意多的注釋。 引用C語言標(biāo)準(zhǔn)庫函數(shù),一般要用文件包含預(yù)處理命令將其頭文件包含 進(jìn)來。 用戶自定義的函數(shù),必須先定義后使用。 變量必須先定義后使用。 不能用關(guān)鍵字來命名變量和函數(shù)。 函數(shù)包含兩個(gè)部分:聲明部分和執(zhí)行部分,在C程序中,聲明部分在 前,執(zhí)行部分在后,這兩部分的順序不能顛倒,也不能有交叉。

15、C語言的語句都是以分號結(jié)尾。1.3 C語言程序的基本結(jié)構(gòu)優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn)對齊有足夠的注釋有合適的空行main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);1.3 C語言程序的基本結(jié)構(gòu)學(xué)習(xí)內(nèi)容程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)1C語言的發(fā)展及其特點(diǎn)和應(yīng)用2C語言程序的基本結(jié)構(gòu)3編制C語言程序的基本步驟4c語言概述1.4 編制C語言程序的基本步驟編輯程序代碼的錄入,生成源程序*.c語法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫鏈接裝配,生成可

16、執(zhí)行程序*.exe在c編譯環(huán)境下選擇“RUN”命令,獲得運(yùn)行結(jié)果。編譯鏈接運(yùn)行 編寫C程序的步驟 開 始編 輯編 譯有錯(cuò)?鏈 接執(zhí) 行結(jié)果正確?結(jié) 束源程序file.c目標(biāo)程序file.obj庫函數(shù)和其它目標(biāo)程序可 執(zhí) 行 程序file.exe不正確正確有無調(diào)試C程序的流程1.4 編制C語言程序的基本步驟 1.啟動(dòng)TC,進(jìn)入TC集成環(huán)境 2.編輯單個(gè)源程序文件 3.編譯、連接單個(gè)源程序文件 選擇并執(zhí)行Compile | Make EXE File項(xiàng)(快捷鍵:F9)4.運(yùn)行與查看結(jié)果 (1)運(yùn)行當(dāng)前正在編輯的源程序文件 選擇并執(zhí)行Run | Run項(xiàng)(快捷鍵:Ctrl+F9),(2)查看運(yùn)行結(jié)果

17、 選擇并執(zhí)行Run | User Screen項(xiàng)(快捷鍵:Alt+F5)。查看完畢后,按任一鍵返回編輯窗口。補(bǔ) 充 知 識進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換機(jī)器數(shù)的表示形式及其表示范圍C語言程序設(shè)計(jì)補(bǔ)充知識學(xué)習(xí)內(nèi)容進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換數(shù)碼:表示數(shù)的符號基數(shù):數(shù)碼的個(gè)數(shù)權(quán) :每一位所具有的值進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換16,16,16,逢十六進(jìn)一1609,AF十六進(jìn)制數(shù)8,8,8,逢八進(jìn)一807八進(jìn)制數(shù)2,2,2,逢二進(jìn)一201二進(jìn)制數(shù)10,10,10,逢十進(jìn)一1009十進(jìn)制數(shù)權(quán)特點(diǎn)表示基數(shù)碼數(shù)制十六進(jìn)制:81AE=816+116 +1016+1416八進(jìn)制:4275=48+28 +78+58十進(jìn)制:4956= 410+9

18、10 +510+610二進(jìn)制:1011=12+02 +12+12進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換100123452592121202121211110111)()(:例10012894868381136:3)()(例1001231679781610162161516121:4)()(例AF103210123452625.59212021 212120212121101.111011 :2)()(例方法:按權(quán)相加二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制步驟:首先進(jìn)行整數(shù)部分轉(zhuǎn)換,然后進(jìn)行小數(shù)部分轉(zhuǎn)換。進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制(1)整數(shù)部分轉(zhuǎn)換原理:的余數(shù)是2)2.22(222.22)

19、.(00012110011112011NaaaaaaaaaaaaaNnnnnnnnnnn進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換例: 把十進(jìn)制數(shù)59轉(zhuǎn)換成二進(jìn)制數(shù)余余余余余余第一次得到的余數(shù)是最低位最后得到的余數(shù)是最高位例: 把十進(jìn)制數(shù)159轉(zhuǎn)換成八進(jìn)制數(shù)例: 把十進(jìn)制數(shù)459轉(zhuǎn)換成十六進(jìn)制數(shù)4591628161160(459)10=(1CB)161 C B 余11余12余 1方法:連續(xù)除以基,從低到高記錄余數(shù),直至商為0進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制(2)小數(shù)部分轉(zhuǎn)換原理:的整數(shù)部分是2N)2.2(22.22).(11mm1211mm22112m21aaaaaaaaaaN方法:連續(xù)乘以基,

20、從高到低記錄整數(shù)部分, 直至結(jié)果的小數(shù)部分為0進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換 0.8125 2 1.625 (b1 1) 最高小數(shù)位 0.625 2 1.25 (b2 1) 0.25 2 0.5 (b3 0) 0.5 2 1.0 (b4 1) 最低小數(shù)位 所以 (0.8125)10 (0.1101)2注意:對于小數(shù)部分的轉(zhuǎn)換式中的整數(shù)不參加連乘,第一次乘以2所得到的整數(shù)部分是二進(jìn)制數(shù)小數(shù)的最高位,最后所得到的整數(shù)部分是二進(jìn)制數(shù)小數(shù)的最低位。例: 將十進(jìn)制數(shù)0.8125轉(zhuǎn)換成二進(jìn)制 0.8123 2 1.6246 (b1 1) 最高小數(shù)位 0.6246 2 1.2492 (b2 1) 0.2492 2 0.

21、4984 (b3 0) 0.4984 2 0.9968 (b4 0) 最低小數(shù)位 所以 (0.8123)10 (0.1100)2例: 將十進(jìn)制數(shù)0.8123轉(zhuǎn)換成二進(jìn)制 0.8123 8 6.4984 (b1 6) 最高小數(shù)位 0.4984 8 3.9872 (b2 3) 0.9872 8 7.8976 (b3 7) 0.8976 8 7.1808 (b4 7) 最低小數(shù)位 所以 (0.8123)10 (0.6377)8例: 將十進(jìn)制數(shù)0.8123轉(zhuǎn)換成八進(jìn)制在十進(jìn)制的小數(shù)部分轉(zhuǎn)換中,有時(shí)連續(xù)乘以2不一定能使小數(shù)部分等于0,這說明該十進(jìn)制小數(shù)不能用有限位二進(jìn)制小數(shù)表示。這時(shí),只要取足夠多的位數(shù)

22、,使其誤差達(dá)到所要求的精度就可以了。進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換二進(jìn)制、八進(jìn)制、十六進(jìn)制之間的轉(zhuǎn)換000 0001 1010 2011 3100 4101 5110 6111 7例:將二進(jìn)制數(shù)(1101101.10101)2轉(zhuǎn)換成八進(jìn)制數(shù)所以: (1101101.10101)2 (155.52)8二進(jìn)制數(shù): 001 101 101 . 101 0101八進(jìn)制數(shù):55 .52二進(jìn)制八進(jìn)制方法:從小數(shù)點(diǎn)開始,分別向左、右按3位分組轉(zhuǎn)換成對應(yīng) 的八進(jìn)制數(shù)字字符,最后不滿3位的,則需補(bǔ)0。 進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換000 0001 1010 2011 3100 4101 5110 6111 7例:將八進(jìn)制數(shù)(345.

23、64)8轉(zhuǎn)換成二進(jìn)制數(shù)所以: (345.64)8 (11100101.1101)2八進(jìn)制數(shù): 3 4 5 . 6 4011二進(jìn)制數(shù):100 101 .110 100八進(jìn)制二進(jìn)制方法:將每位八進(jìn)制數(shù)用3位二進(jìn)制表示即可 。 進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換例:將二進(jìn)制數(shù)(1101101.10101)2轉(zhuǎn)換成16進(jìn)制數(shù)所以: (1101101.10101)2 (6D.A8)16二進(jìn)制數(shù): 0110 1101 . 1010 10006十六進(jìn)制數(shù):D .A80000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C11

24、01 D1110 E1111 F二進(jìn)制十六進(jìn)制方法:從小數(shù)點(diǎn)開始,分別向左、右按4位分組 轉(zhuǎn)換成對應(yīng)的十六進(jìn)制數(shù)字字符,最后不 滿4位的,則需補(bǔ)0。 例:將十六進(jìn)制數(shù)(A9D.6C)16轉(zhuǎn)換成二進(jìn)制數(shù)所以: (A9D.6C)2 (101010011101.011011)2十六進(jìn)制數(shù): A 9 D . 6 C1010二進(jìn)制數(shù):0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F1001 1101 .0110 1100十六進(jìn)制二進(jìn)制方法:將每位十六進(jìn)制數(shù)用4位

25、二進(jìn)制表示即可 。 進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換請問.?(9FDA.4B)16 = (_)8(256)7 = (_)6進(jìn)位計(jì)數(shù)制及其轉(zhuǎn)換機(jī)器數(shù)的表示形式及其表示范圍C語言程序設(shè)計(jì)補(bǔ)充知識學(xué)習(xí)內(nèi)容機(jī)器數(shù)的表示形式及其表示范圍真值:一個(gè)帶符號數(shù)由兩部分組成:一部分表示數(shù)的符號, 另一部分表示數(shù)的數(shù)值。一般,直接用正號“”和 負(fù)號“”來表示符號的二進(jìn)制數(shù),叫做符號數(shù)的真值。真值: + 1 0 1 1 - 1 0 1 1機(jī)器數(shù): 0 1 0 1 1 1 1 0 1 1機(jī)器數(shù)機(jī)器數(shù)的表示的表示形式形式原碼原碼補(bǔ)碼補(bǔ)碼反碼反碼機(jī)器數(shù):計(jì)算機(jī)中的數(shù)是用二進(jìn)制來表示的,數(shù)的符號也是 用二進(jìn)制來表示的。把一個(gè)數(shù)連同其符號

26、在內(nèi)在機(jī) 器中的表示加以數(shù)值化,這樣的數(shù)稱為機(jī)器數(shù)。 一般用最高有效位來表示數(shù)的符號,正數(shù)用0表示,負(fù)數(shù)用1表示。機(jī)器數(shù)的表示形式及其表示范圍原碼:又稱為“符號-數(shù)值表示”。在以原碼形式表示的正數(shù)和負(fù) 數(shù)中,第1位表示符號位,對于正數(shù),符號位記為0,對 于負(fù)數(shù),符號位記為1,其余各位表示數(shù)值部分。例:N1 +10011 N2 -01010 N1原 010011 N2原 101010機(jī)器數(shù)的表示形式及其表示范圍當(dāng)N為正數(shù)時(shí),N原和N的區(qū)別只是增加一位用0表示的符號 位。由于在數(shù)的左邊增加一位0對該數(shù)的數(shù)值并無影響,所以 N原就是N本身。當(dāng)N為負(fù)數(shù)時(shí),N原和N的區(qū)別是增加一位用1表示的符號位。在原

27、碼表示中,有兩種不同形式的0,即: 0原 0000 或 0.000 0原 1000 或 1.000反碼:又稱為“對1的補(bǔ)數(shù)”。用反碼表示時(shí),左邊第一位也是 符號位,符號位為0代表正數(shù),符號位為1代表負(fù)數(shù), 對于負(fù)數(shù),反碼的數(shù)值是將原碼數(shù)值按位求反,而對 于正數(shù),反碼和原碼相同。所以,反碼數(shù)值的形成與 它的符號位有關(guān)。 例:N1 +10011 N2 - 01010 N1反 010011 N2反 110101機(jī)器數(shù)的表示形式及其表示范圍機(jī)器數(shù)的表示形式及其表示范圍正數(shù)N的反碼N反與原碼N原相同。對于負(fù)數(shù)N,其反碼N反的符號為1,數(shù)值部分是將原 碼數(shù)值按位求反。在反碼表示中,有兩種不同形式的0,即: 0反 0000 或 0.000 0反 1111 或 1.111機(jī)器數(shù)的表示形式及其表示范圍 補(bǔ)碼:又稱為“對2的補(bǔ)數(shù)”。在補(bǔ)碼表示法中,正數(shù)的補(bǔ) 碼表示同原碼和反碼的表示是相同的,而負(fù)數(shù)的補(bǔ) 碼表示卻不同。對于負(fù)數(shù)的補(bǔ)碼,其符號位為1, 而數(shù)值位是將原碼“按位求反,末位加1”。例: N1 10011 N2 01010 N1補(bǔ) 010011 N2補(bǔ) 110110機(jī)器數(shù)的表示形式及其表示范圍正數(shù)N的補(bǔ)碼N補(bǔ)與原碼N原和反碼N反相同。對于負(fù)數(shù)N,其補(bǔ)碼N補(bǔ)的符號

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論