- 計算機應用基礎(Windows 7+Office 2010)
- 趙幫華 湯東主編
- 4989字
- 2020-04-30 19:02:47
1.2 計算機中信息的表示
計算機要處理的內容是多種多樣的,如數字、文字、符號、圖形、圖像和語言等。但是計算機無法直接“理解”這些內容,所以在計算機內部專門有一種表示信息的形式。
1.2.1 信息和數據
(1)信息和數據的概念
信息是指現實世界事物的存在方式或運動狀態的反應。信息具有可感知性、可存儲性、可加工性、可傳遞性和可再生性等自認屬性。
信息處理是指信息的收集、加工、存儲、傳遞及使用過程。
數據是對客觀事物的符號表示。數值、文字、語言、圖形、圖像等都是不同形式的數據。
信息和數據這兩個概念既有聯系又有區別。數據是反映客觀事物屬性的記錄,是信息的具體表現形式或載體;信息是數據的語義解釋,是數據的內涵。數據經過加工處理之后,就成為信息;而信息需要經過數字化轉變成數據才能存儲和傳輸。數據是數據采集時提供的,信息是從采集的數據中獲取的有用信息。
(2)計算機中的信息
計算機內部均采用二進制來表示各種信息,但計算機與外部交互仍采用人們熟悉和便于閱讀的形式,如十進制數、文字、聲音、圖形圖像等,其間的轉換則由計算機系統的硬件和軟件來實現。那么在計算機內部為什么要用二進制來表示各種信息呢?主要有以下幾個方面的原因。一是電路簡單,易于表示。計算機是由邏輯電路組成的,邏輯電路通常只有兩個狀態。例如開關的接通和斷開,電壓的高與低等。這兩種狀態正好用來表示二進制的兩個數碼0和1。若是采用十進制,則需要有十種狀態來表示十個數碼,實現起來比較困難。二是可靠性高。兩種狀態表示兩個數碼,數碼在傳輸和處理中不容易出錯,因而電路更加可靠。三是運算簡單。二進制數的運算規則簡單,無論是算術運算還是邏輯運算都容易進行。四是邏輯性強。計算機不僅能進行數值運算而且能進行邏輯運算。邏輯運算的基礎是邏輯代數,二進制的兩個數碼1和0,恰好代表邏輯代數中的“真”和“假”。
(3)計算機中的數據單位
計算機中數據最小的單位是位,存儲容量的基本單位是字節,除此之外還有千字節、兆字節、吉字節等。
① 位(bit) 位是數據的最小單位,用來表示存放的一位二進制數,即0或1。在計算機中,采用多個數字(0和1的組合)來表示一個數時,其中的每一個數字稱為1位。
② 字節(Byte) 字節是計算機表示和存儲信息的最常用、最基本單位。1個字節由8位二進制數組成,即1Byte=8bit。
比字節表示的存儲空間更大的有千字節、兆字節、吉字節等,不同數據單位之間的換算關系為:
字節B 1Byte=8bit
千字節kB 1kB=1024B=210B
兆字節MB 1MB=1024kB=1024×1024B
吉字節GB 1GB=1024MB=1024×1024kB
太字節TB 1TB=1024GB=1024×1024MB
③ 字長 人們將計算機一次能夠并行處理的二進制位稱為該機器的字長。字長直接關系到計算機的精度、功能和速度,是計算機的一個重要指標,字長越長,處理能力就越強。計算機型號不同,其字長也不同,通常字長是字節的整數倍,如8位、16位、32位、64位等。
1.2.2 進位計數制及其轉換
在日常生活中,最常使用的是十進制數,而計算機內部在進行數據處理時,使用的是二進制數,由于二進制表示數時書寫較長,有時為了理解和書寫方便也用到八進制和十六進制,但它們最終都要轉化成二進制數后才能在計算機內部進行加工和處理。
(1)進位計數制
進位計數制是利用固定的數字符號和統一的規則來計數的方法。計算機中常見的有十進位計數制、二進位計數制、八進位計數制、十六進位計數制等。
一種進位計數制包含一組數碼符號和三個基本因素。
數碼:一組用來表示某種數制的符號。例如,十進制的數碼是0、1、2、3、4、5、6、7、8、9;二進制的數碼是0、1。
基數:某數制可以使用的數碼個數。例如,十進制可以使用的數碼有10個,基數為10;二進制可以用的數碼只有0和1兩個,基數為2。
數位:數碼在一個數中所處的位置(小數點左側的第一位為0開始)。
權:權是以基數的底,數位為指數的整數次冪,表示數碼在不同位置上的數值。
例如:十進制12670中,數碼6的數位是2,權是102。
表1-2中十六進制的數碼除了十進制的10個數字符號外,還使用了6個英文字母:A,B,C,D,E,F。它們分別等于十進制的10,11,12,13,14,15。
表1-2 計算機中常用的幾種進位計數制的表示
表1-3是十進制0~15與等值的二進制、八進制、十六進制的對照表。可以看出采用不同進制表示同一數時,基數越大,則使用的位數越少。比如十進制10,需要4位二進制來表示,只需要2位八進制、1位十六進制來表示。這也是為什么在程序書寫中一般采用八進制或十六進制表示數據的原因。
(2)常用進制之間的轉換
① N進制轉換為十進制 在十進制數中1234可以表示為以下多項式:
(1234)10=1×103+2×102+3×101+4×100
式中,103、102、101、100是各個數碼的權,可以看出將各個位置上的數字乘上權值再求和就可以得到這個數。所以,將N進制數按權展開再求和就可以得到對應的進制數,這就是將N進制數轉換為十進制數的方法。
表1-3 不同進制數的對照表
例如:
(10111)2 =1×24+0×23+1×22+1×21+1×20
=16+0+4+2+1
=(23)10
(217)8 =2×82+1×81+7×80
=128+8+7
=(143)10
(6C)16 =6×161+12×160
=96+12
=(108)10
如果一個N進制中既有整數部分又有小數部分,仍然可按權展開求和將其轉換成對應的十進制數。
例如:
(1011.11)2 =1×23+0×22+1×21+1×20+1×2-1+1×2-2
=8+2+1+0.5+0.25
=(11.75)10
② 十進制數轉換為N進制數 將十進制數轉換為N進制數時由于整數部分和小數部分采用不同的方法,所以可以將整數和小數分開轉換后再連接起來即可。
a.整數 將一個十進制整數轉換為N進制整數可以采用“除基取余”法,即將十進制整數連續的除以N進制數的基數取余數,直到商為0為止,最先取得的余數放在最右邊。
【例1】將十進制整數125分別轉換為二進制數和八進制數。
(125)10=(7D)16
(125)10=(1111101)2
b.小數 將一個十進制小數數轉換為N進制小數采用“乘基取整”法,即將十進制小數不斷地乘以N進制數的基數取整數,直到小數部分為0或達到精度要求為止(存在小數部分永遠不會達到0的情況),取得的整數從小數點之后自左往右排列,取有效精度,最先取得的整數放在最左邊。
【例2】將十進制小數0.625轉換成二進制數。
(0.625)10=(0.101)2
【例3】將十進制數147.16轉換成八進制數,要求精確到小數點后4位。
(147.16)10=(223.1217)8
③ 二進制數與八進制數、十六進制數的相互轉換 信息在計算機內部都用二進制數來表示,但二進制的位數比較長,比如一個十進制數 128,用等值的二進制數來表示就需要8位,書寫和識別起來很不方便也不直觀。而八進制和十六進制數比二進制數就要短得多,同時二進制、八進制和十六進制之間存在特殊的關系:81=23;161=24,即1位八進制數相當于3位二進制數,1位十六進制數相當于4位二進制數,因此它們之間轉換也非常方便。在書寫程序或數據時往往采用八進制數或十六進制數形式來表示等值的二進制數。
如表1-3所示根據二進制數和八進制數、十六進制數之間的關系,將二進制數轉換為八進制數時,以小數點為起點向左右兩邊分組,每3位為一組,兩頭不足添0補齊3位(整數高位補0,小數低位補0對數的大小不會產生影響)。
例如:將二進制數(1011011.10111)2轉換成八進制數:
( 001 011 011 . 101 110)2=(133.56)8
1 3 3 5 6
將二進制數轉換為十六進制數時,以小數點為起點向左右兩邊分組,每4位為一組,兩頭不足添0補齊4位。
例如:將二進制數(1011011.10111)2轉換成十六進制數。
(0101 1011 . 1011 1000)2=(3B.B8)16
3 B B 8
反過來,將八進制數或十六進制數轉換成二進制數,只要將1位八進制數或者十六進制數對應轉換為三位或者4位二進制數即可。例如:
(217.35)8=(010 001 111 . 011 101)2=(10001111.011101)2
2 1 7 3 5
(46E.A8)16=(0100 0110 1110.1010 1000)2=(10001101110.10101)2
4 6 E A 8
注意:整數部分的高位0和小數部分的低位0可以不寫。
1.2.3 計算機中非數值信息的表示
日常生活中需要計算機處理的信息是多種多樣的,如文字、聲音、圖片、符號、圖形等等,而計算機只能識別二進制數,為了讓計算機能直接“讀懂”這些信息,我們需要將這些非數值信息采用數字化編碼的形式將其轉換為計算機能直接識別的“0”和“1”。非數值信息非常多,我們重點了解兩類非數值信息的編碼方式,一類是西文字符,一類是中文漢字。
(1)字符編碼
目前采用的字符編碼主要是ASCII碼,又叫美國信息交換標準碼(American National Standard Code for Information Interchange),是由美國國家標準學會制定的。它起始于上世紀50年代后期,在1967年定案。
ASCII碼使用指定的7位或8位二進制數組合來表示128或256種可能的字符,其中7位ASCII碼叫做標準ASCII碼,8位ASCII碼叫做擴展ASCII碼。標準ASCII碼用一個字節(8位)來表示一個字符,最高位為0,剩下的 7位二進制數共有27=128個不同的編碼,包括了0~9共10個數字、52個大小寫英文字母、32個標點符號和運算符以及34個控制字符。常用字符的ASCII編碼見表1-4。
表1-4 標準ASCII碼表
從ASCII碼表可以看出,0~9,A~Z,a~z按照從小到大的順序排列,且小寫字母比它對應的大寫字母的ASCII值大32。比如字符“a”的ASCII編碼是1100001,對應的十進制數是97,則字符“b”的ASCII碼值就是98,字符“A”的ASCII碼就是65。
(2)漢字編碼
① 漢字編碼字符集 ASCII碼只對英文字母、數字、標點符號、控制字符等進行了編碼,而計算機也需要處理、顯示、存儲漢字,因而對漢字字符也需要進行編碼。為了滿足國內在計算機中使用漢字的需要,中華人民共和國國家標準化管理委員會發布了一系列的漢字字符集國家標準編碼,統稱為GB碼,或國標碼。其中最有影響的是于1980年發布的《信息交換用漢字編碼字符集 基本集》,標準號為GB 2312—80,因其使用非常普遍,也常被通稱為國標碼。
GB 2312是一個簡體中文字符集,由6763個常用漢字和682個全角的非漢字字符組成。其中漢字根據使用的頻率分為兩級:一級漢字3755個,按漢語拼音字母的次序排列;二級漢字3008個,按偏旁部首排列。由于字符數量比較大,GB 2312采用了二維矩陣編碼法對所有字符進行編碼。首先構造一個94行94列的方陣,對每一行稱為一個“區”,每一列稱為一個“位”,然后將所有字符填寫到方陣中。這樣所有的字符在方陣中都有一個唯一的位置,這個位置可以用區號、位號合成表示,稱為字符的區位碼。如漢字“國”出現在第25區(行)的第90位(列)上,其區位碼為2590。因為區位碼同字符的位置是完全對應的,因此區位碼同字符之間也是一一對應的。這樣所有的字符都可通過其區位碼轉換為國標碼。轉換的方法是將漢字的區位碼中的區號和位號分別轉換成十六進制數,再分別加上20H,就得到了該漢字的國標碼。如漢字“國”的區位碼是2590D,則其國標碼為397AH。
GB 2312字符在計算機中存儲是以其區位碼為基礎的,其中漢字的區碼和位碼分別占一個存儲單元,每個漢字占兩個存儲單元。實際存儲時,將漢字的區位碼轉換成存儲碼進行存儲。
在我國臺灣、香港與澳門地區,使用的是繁體漢字,而1980年發布的GB 2312面向簡體中文字符集,并不支持繁體漢字。為統一繁體字符集編碼,1984年臺灣五大廠商宏碁、神通、佳佳、零壹以及大眾一同制定了一種繁體中文編碼方案,因其來源被稱為五大碼,英文寫作Big5,后來按英文翻譯回漢字后,普遍被稱為大五碼。
② 漢字的幾種編碼 漢字從輸入、存儲處理到輸出都進行了不同方式的編碼,計算機對漢字的處理過程實際上就是漢字各種編碼間的轉換過程,這些編碼主要包括漢字輸入碼、漢字內碼、漢字字形碼等。
a.漢字輸入碼 為通過鍵盤將漢字輸入計算機而編制的各種代碼叫做漢字輸入碼,也叫外碼。目前漢字輸入的編碼研究非常多,已多達數百種,主要包括拼音編碼和字型編碼。常用的微軟拼音、智能ABC、搜狗拼音等就是拼音編碼,五筆字型輸入法就是字型編碼。
b.漢字內碼 也叫機內碼,漢字內碼是在設備和信息處理系統內部存儲、處理、傳輸漢字用的代碼。一個漢字無論采用何種輸入碼,進入計算機后都會被轉化為機內碼才能進行傳輸、處理。目前的規則是將國標碼的高位字節、低位字節各自加上128D或80H。例如,“國”字的國標碼是397AH,每個字節加上80H,“國”字的內碼為B9FAH。這樣做的目的是使漢字內碼區別于西文的ASCII,因為每個西文字母的ASCII的高位均為0,而漢字內碼的每個字節的高位均為1。
c.漢字字形碼 經過計算機處理后的漢字信息,如果要顯示或者打印輸出就需要將漢字內碼轉化為人們能識別的漢字,用于在顯示屏或打印機輸出的就是漢字字形碼,也稱為字模碼。通常用點陣、矢量表示。
用點陣表示時,字形碼指的就是這個漢字字形點陣的代碼。根據輸出漢字的要求不同,點陣的多少也不同。簡易型漢字為16×16點陣、普通型漢字為24×24點陣、提高型漢字為32×32點陣、48×48點陣等。如果是24×24點陣,每行24個點就是24個二進制位,存儲一行代碼需要3個字節。那么,24行共占用3×24=72個字節。計算公式:每行點數×行數/8。依此,對于48×48的點陣,一個漢字字形需要占用的存儲空間為48×48/8=288個字節。