1 / 37

第二章 電腦資料表示法與數字系統

第二章 電腦資料表示法與數字系統. 2-1 資料表示法簡介 2-2 數值表示法 2-3 數字系統介紹 2-4 數字系統轉換方式. 我們知道電腦與一般的電器用品一樣,都是由許多電子電路所組成,並且也透過這些連接的電子電路來傳遞訊息。 電腦僅能辯識電路上電流的「通」( ON )與「不通」( OFF )兩種訊號,因此使用 ” 0” 或 “ 1” 表示電流的脈衝,” 0” 代表 OFF ,” 1” 代表 ON 。. 2-1 資料表示法簡介.

hachi
Download Presentation

第二章 電腦資料表示法與數字系統

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 電腦資料表示法與數字系統 2-1 資料表示法簡介 2-2 數值表示法 2-3 數字系統介紹 2-4 數字系統轉換方式

  2. 我們知道電腦與一般的電器用品一樣,都是由許多電子電路所組成,並且也透過這些連接的電子電路來傳遞訊息。 • 電腦僅能辯識電路上電流的「通」(ON)與「不通」(OFF)兩種訊號,因此使用 ”0” 或 “1” 表示電流的脈衝,”0” 代表 OFF,”1” 代表 ON。

  3. 2-1 資料表示法簡介 • 不過因為電腦所處理的資料相當龐大,一個位元不夠使用,所以又將八個位元組合成一個「位元組」(byte),因為一個位元有 ”0” 與 “1” 兩種狀態,一個位元組便有 28=256 種狀態。

  4. 由於中文字的字數眾多,所以無法使用一個位元組來代表一個中文字碼,而必須至少使用兩個位元組來表示(如BIG5中文編碼),因為可表示 216=65536 個字型。 • 為了計量方便起見,我們定義了更大的儲存單位。常用的儲存單位有KB(Kilo Byte)、MB(Mega Bytes)、GB(Giga Bytes)等等,這些單位的換算關係如下: • 1KB(Kilo Bytes)=210 Bytes=1024Bytes • 1MB(Mega Bytes)=220 Bytes=1024KB • 1GB(Giga Bytes)=230 Bytes=1024MB • 1TB(Tera Bytes)=240 Bytes=1024GB

  5. 編碼系統簡介 • 由於電腦中的符號、字元或文字是以「位元組」(byte)為單位儲存,因此必須逐一轉換成相對應的內碼,然後電腦才能夠明瞭使用者所下達的指令,這就是編碼系統(Encoding System)的由來。在此種情形下,美國標準協會(ASA)提出了一組以7個位元(Bit)為基礎的「美國標準資訊交換碼」(American Standard Code for Information Interchange, ASCII)碼,來做為電腦中處理文字的統一編碼方式,是目前最普遍的編碼系統。

  6. ASCII採用8 位元表示不同的字元,不過最左邊為核對位元,故實際上僅用到7個位元表示。也就是說ASCII碼最多可以表示27=128個不同的字元,可以表示大小英文字母、數字、符號及各種控制字元。例如ASCII碼的字母 ”A” 編碼為1000001,字母 ”a” 編碼為1100001:

  7. 後來有些電腦系統為了能夠處理更多的字元,將編碼系統擴充到8個位元,與原有的ASCII碼字元集比較之下,新的字元集有更多的圖形字元。例如由IBM所發展的「擴展式BCD碼」(Extended Binary Coded Decimal Interchange Code, EBCDIC),原理乃採用8個位元來表示不同之字元,因此EBCDIC碼最多可表示256個不同字元,比ASCII碼多表示128個字元。例如EBCDIC編碼的'A'編碼11000001,'a'編碼為10000001。如下圖所示:

  8. Unicode碼 • (Unicode Technology Consortium:UTC)所制定做為支援各種國際性文字的16位元編碼系統- Unicode碼(或稱萬國碼)。在Unicode碼尚未出現前,並沒有一個編碼系統可以包含所有的字元,例如單單歐州共同體涵蓋的國家,就需要好幾種不同的編碼系統來包括歐洲語系的所有語言。Unicode跟其它編碼系統不同的地方,在於字表容納的總字數。例如國內有許多人取了「電腦打不出來」的名字,好比知名歌手陶吉吉、總統府秘書長游錫方方土,原因就是BIG5碼只能表示13000個左右的中文字,如果能夠支援Unicode碼,就不會有這樣的問題了。

  9. 2-2 數值表示法 • 一般在電腦中的資料,大致可以區分為文字資料與數值資料兩種。文字資料的表示法在上節中已經說明,接下來要來介紹數值資料:

  10. 整數表示法 • 對於電腦中的數值資料,使用二進位系統雖然可以正確地表示整數與小數部分,但是僅僅限於正數部分,而無法表示負數,畢竟電腦內部並無法直接使用 ”+”或 ”-” 來表示正、負數。由於負數的表示法會影響電腦運算速度,通常電腦中的負數表示法,多半是利用「補數」的概念。 • 所謂整數,就是不帶小數點的數,範圍包括0、正整數、負整數。在電腦系統中只能以固定位數表示數字,所用的位元組(bytes)越大,儲存位數越大。通常可區分為「不帶號整數」及「帶號整數」兩種:

  11. 不帶號整數 • 就是正整數,並且再儲存時不帶任何符號位元。例如一個正整數是以一個位元組(8 bits)來儲存,則共能表示28=256個數字,且數字範圍為0 ~ 255。總結來說,如果某電腦系統是以n位元來表示正整數,則可能表示的有效範圍為 0 ~ 2n-1 • 帶號整數 • 可以表示正負整數,必須利用額外的1bit來表示符號位元,符號位元為0表示為正數,如果是1則代表為負數,其他剩下的位元則表示此整數的數值。對於利用n個位元來表示帶號整數的正數範圍為(0 ~ 2n-1)

  12. 至於負整數的表示,則必須從先從「補數」談起。所謂「補數」,是指兩個數字加起來等於某特定數(如十進位制即為10)時,則稱該二數互為該特定數的補數。例如3的10補數為7,同理7的10補數為3。對二進位系統而言,則有1補數系統和2補數系統兩種,敘述如下: • 1補數系統(1´s Complement) • 「1補數系統」是指如果兩數之和為1,則此兩數互為1的補數,亦即0和1互為1的補數。也就是說,打算求得二進位數的補數,只需將0變成1,1變成0即可;例如011010102的1補數為100101012。

  13. 至於談到電腦內部的常用負數表示法,主要有「帶號大小值法」、「1的補數法」及「2的補數法」三種。分別介紹如下:至於談到電腦內部的常用負數表示法,主要有「帶號大小值法」、「1的補數法」及「2的補數法」三種。分別介紹如下: • 帶號大小值法 (Sign Magnitude) 若用N位元表示一個整數,最左邊一位元代表正負號,其餘N-1位元表示該數值,則此數的變化範圍在 -2N-1-1~ +2N-1-1。如果是以8個位元來表示一個整數,則最大的整數為(01111111)2=127,而最小的負數(11111111)2= -127。

  14. 1 ‘s 補數法(1’s Complement) 最左邊的位元同樣是表示正負號,它的正數的表示法和帶號大小值法完全相同,當表示負數時,由0變成1,而1則變成0,並得到一個二進位字串。例如我們使用8個位元來表示正負整數,那麼9=(00001001)2,則其「1 's補數」即為11110110:

  15. 2’s 補數法(2’s Complement) 最左邊的位元還是符號表示位元,正數的表示法則與帶號大小值法相同,但負數的表示法是用1補數法求得,並在最後一位元上加1。基本上,「2´s補數法」的做法就是把「1´s補數法」加1即可。例如 9=(00001001)2的「1´s補數」為(11110110)2,其「2’s補數」則為(11110111)2:

  16. 定點數表示法 • 在電腦中的小數表示法可分為定點數與浮點數表示法兩種。兩者的差別在於小數點的位置,對於正負整數而言,定點數表示法小數點位置固定在右邊,而且不會因為電腦種類的不同而有差別,例如 16.8、0.2387等

  17. 浮點數表示法 • 浮點數就是包含小數點的指數型數值表示法,或稱為「科學符號表示法」。而浮點數表示法的小數點位置則取決於精確度及數值而定,另外不同電腦型態的浮點數表示法也有所不同。想要表示電腦內部的浮點數必須先以正規化(Normalized Form)為其優先步驟。 假設一數N能化成以下格式: • N=0.F*be,其中 • F:小數部份 • e:指數部份 • b:基底

  18. 至於在電腦內部的浮點數表示式,可用下圖來表示:至於在電腦內部的浮點數表示式,可用下圖來表示: • 例如(13.25)=(0.110101)×24 ,存入電腦的儲存格式如下:

  19. 2-3 數字系統介紹 • 人類慣用的數字觀念,就是以逢十進位的10進位來計量。也就是使用0、1、2、…9十個數字做為計量的符號,不過在電腦系統中,卻是以0、1所代表的二進位系統為主,但是如果這個2進位數很大時,閱讀及書寫上都相當困難。因此為了更方便起見,又提出了八進位及十六進位系統,請看以下的圖表說明:

  20. 二進位系統 • 所謂「二進位系統」,就是在這個系統下只有0與1兩種符號,以2為基數,並且逢2 進位,在此系統中,任何數字都必須以0或1來表示。例如十進位系統的3,在二進位系統則表示為112。 310=1*21+1*20=112

  21. 十進位系統 • 「十進位系統」是人類最常使用的數字系統,以10為基數且逢十進位,其基本符號有0、1、2、3、4…8、9共10種,例如9876、12345、534都是10進位系統的表示法。

  22. 八進位系統 • 八進位系統是以8為基數,基本符號為0,1,2,3,4,5,6,7,並且逢8進位的數字系統。例如十進位系統的87,在八進位系統中可以表示為1278。 1278=1*82+2*81+7=64+16+7=8710

  23. 十六進位系統 • 十六進位系統是一套以16為基數,而且逢十六進位的數字系統,其基本組成符號為0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共十六種。其中A代表十進位的10,B代表11,C代表12,D代表13,E代表14,F代表15: A1816=10*162+1*161+8*160=258410

  24. 2-4 數字系統轉換方式 • 由於電腦內部是以二進位系統方式來處理資料,而人類則是以十進位系統來處理日常運算,當然有些資料也會利用八進位或十進位系統表示。因此當各位認識了以上數字系統後,也要了解它們彼此間的轉換方式

  25. 非十進位轉成十進位 • 「非十進位轉成十進位」的基本原則是將整數與小數分開處理。例如二進位轉換成十進位,可將整數部份以2進位數值乘上相對的2正次方值,例如二進位整數右邊第一位的值乘以20,往左算起第二位的值乘以21,依此類推,最後再加總起來。 • 至於小數的部份,則以2進位數值乘上相對的2 負次方值,例如小數點右邊第一位的值乘以2-1,往右算起第二位的值乘以2-2,依此類推,最後再加總起來。至於八進位、十六進位轉換成十進位的方法都相當類似。

  26. 0.112=1*2-1+1*2-2=0.5+0.25=0.7510 11.1012=1*21+1*20+1*2-1+0*2-2+1*2-3=3.87510 128=1*81+2*80=10 163.78=1*82+6*81+3*80+7*8-1=115.87510 A1D16=A*162+1*161+D*160 =10*162+1*16+13 =258910 AC.216 =A*161 + C * 16 0 + 2 * 16 - 1 =10*161+12+0.125 =172.12510

  27. 十進位轉換成非十進位 • 轉換的方式可以分為整數與小數兩部份來處理,我們利用以下範例來為各位說明: • (1). 十進位轉換成二進位 6310=1111112

  28. (0.625)10=(0.101)2

  29. (12.75)10=(12) 10+(0.75) 10 其中(12)10=11002 (0.75)10=(0.11)2 所以(12.75)10=(12) 10+(0.75) 10 =11002+0.11 =1100.112

  30. (2). 十進位轉換成八進位 6310=(77)8 (0.75)10=(0.6)8

  31. (3). 十進位轉換成十六進位 (63)10=(3F)16 (0.62890625)10=(0.A1)16

  32. 120.510=(120) 10+(0.5) 10 其中 (120) 10=(78)16 (0.5) 10=(0.8)16

  33. 非十進位轉換成非十進位 • 如果打算從非十進位轉換另一種非十進位的方式,也相當容易,方法有兩種。第一種方法是只要先行將其中一個非十進位轉換為十進位制,再依照前述兩節方式轉換即可,例如我們將 (156)8轉換成2進位與16進位:

  34. (1). 二進位→八進位 首先請將二進位的數字,以小數點為基準,小數點左側的整數部份由右向左,每三位打一逗點,不足三位則請在其左側補足0。小數右側的小數部份由左向右,每三位打一逗點,不足三位則請在其右側補足0,接著將每三位二進數字換成八進位數字,即成八進制。例如將10101110111011.01010112換算成八進位: 10,101,110,111,011.010,101,1 依上述原則補0,3個3個一組 分別轉換或8進位 25673.254

  35. (2). 二進位→十六進位 將二進位的數字,以小數點為基準,小數點左側的整數部分由右向左,每四位打上一個逗點,不足四位則請在其左側補足0。小數點右側的小數部分由左向右,每四位打一個逗點,不足四位則請在其右側補足0。接著把每四位二進數字,換成十六進位數字,即成十六進制。例如將10101110111011.01010112換算成十六進位: 10,1011,1011,1011,0101,011 依上述原則補0,每4個一組 2BBB.5616

More Related