計算機科學的基礎知識
第二章 計算機科學的基礎知識 本章學習目標: 數據的理解、分類與表示 計算機的基本結構與工作原理 程序設計基礎 算法基礎 2.1 數據類型 2.2 計算機內部的數據 2.3 表示數據 2.4 十進制表示法 2.5 二進制表示法 2.6 十六進制表示法 2.7 八進制表示法 2.8 整數的表示法 2.9 浮點表示法 2.10 微型計算機系統與微處理器 2.12 計算機輸入/輸出設備 2.13 微型計算機的總線及接口標準 2.14 程序設計基礎 2.15 算法基礎 2.1 數據類型 2.2 計算機內部的數據 問題:計算機怎樣處理所有這些數據類型呢?是否用不同的計算機處理不同類型的數據? 答案:當然是否定,最有效的解決方法是采用統一的數據表示法。 所有計算機外的數據類型都采用統一的數據表示法,經過轉換后存入計算機,當數據從計算機輸出時再還原回來。這種通用的格式被稱為位模式。 2.2.1 位 位(bit,binary digit的縮寫,二進制數字)是存儲在計算機中的最小數據單元;它是0或1。 2.2.2 位模式 位模式,它是一個系列,有時也被稱為位流。 問題:計算機存儲器怎樣知道它所存儲的位模式表示哪種類型的數據。 答案:實際上它并不知道,計算機存儲器僅僅將數據以位模式存儲。至于解釋位模式是數字類型、文本類型、或其他的數據類型則是由輸入\輸出設備或程序來完成的。它只是完成了下面一個過程,當數據輸入計算機時,它們被編碼,當呈現給用戶時,它們被解碼。如圖2-3所示: 2.2.3 字節 字節:通常長度為8的位模式。 這個術語同樣被用來測量內存或其他存儲設備的大小。 2.3 表示數據 如何用位模式表示不同類型的數據 2.3.1 文本 文本的片段是用來表示該語言中某個意思的一系列的符號。 例如: 26個字符(A,B,C,…Z)來表示大寫字母; 26個字符(a,b,c,…z)表示小寫字母; 10個字符(0,1,2…9)來表示數字; (.、?、:、;、…、!)來表示標點。 問題:在一種語言中,位模式到底需要多少位來表示一個符號? 回答:這取決于該語言集中到底有多少不同的符號。 問題:那么位模式的長度和符號的數量關系如何呢? 回答:他們的關系不是線性而是對數關系。例如:如果需要兩個符號,位模式的長度就是1位(log22=1)。 代碼與編碼 代碼:被設計用來表示文本符號的不同的位模式集合稱為代碼。 編碼:表示符號的過程稱為編碼。 1、ASCII 美國國家協會標準(ANSI)開發了一個被稱為美國信息交換標準(ASCII)的代碼。此代碼使用7位表示每個符號。因此可以定義128(27)種不同的符號。用于表示ASCII碼的完整位模式可見附錄A。圖2-5展示了在ASCII碼中“BYTE”是如何表示的。 ASCII碼使用7位模式,范圍從0000000到1111111。 第一個模式(0000000)表示空字符。(沒有字符)。 最后一個模式(1111111)表示刪除字符。 有31種控制(不可打印的)字符。 數字字符(0到9)編碼在字母字符之前。 有一些專用的打印字符。 大寫字母(A…Z)編碼在小寫字母(a…z)之前。 大小寫字符僅用1位來區分。例如,A的模式是1000001,a的模式是1100001。唯一的不同是從右數第6個位上。 在大小寫字母之間,有6種特殊的字符。 2.擴展ASCII碼 ASCII位模式通過在左邊增加額外的0來進行擴充。 3.EBCDIC 擴充的二進制編碼的十進制交換碼。 4.Unicode 使用16位并能表示到多達65536個符號。 5.ISO 國際標準化組織 一種使用32位模式的符號。 漢字字符的編碼 漢字編碼分為機內碼和機外碼 機內碼是在計算機內部使用的用二進制代碼表示的漢字編碼,用于在計算機內部存儲、交換、處理加工漢字信息; 機外碼是不在計算機內使用的漢字編碼,主要是指漢字輸入碼。此外還有供輸出的漢字字形點陣碼。 漢字字符的編碼 GB2312國際編碼 漢字機內碼 漢字輸入碼 漢字的輸出 漢字編碼 漢字是世界上最龐大的字符集。國家標準GB2312-80提供了中華人民共和國國家標準信息交換用漢字編碼,簡稱國標碼。該字符集把常用漢字分成二個字庫。一級字庫3755個漢字,通常占使用漢字的90%左右,按拼音字母順序排列。二級字庫不太常用,有3008個漢字,按部首順序排列。另外還收錄了一些圖形符號。漢字和圖形符號合計7445個。 2.3.2 數 數是使用二進制系統來表示的。在這種系統中,位模式(一系列的0和1)被用來表示數。 (下一節具體討論) 2.3.3 圖像 圖像在計算機中有兩種表示方法:位圖圖形或矢量圖形。 位圖圖形表示 對于僅有黑白點組成的圖像,1位模式足夠表示像素。0模式表示白像素,1模