2章電腦資料表示法與數字系統myweb.utaipei.edu.tw/~cyang/class/intro_cs/ch_02.pdf · 2...

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

Upload: others

Post on 28-Oct-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

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

    2-1 資料表示法簡介2-2 數值表示法2-3 數字系統介紹2-4 數字系統轉換方式

  • 2

    2-1 資料表示法簡介

    編碼系統簡介

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

  • 3

    2-1 資料表示法簡介

    後來有些電腦系統為了能夠處理更多的字元,將編碼系統擴充到8個位元,與原有的ASCII碼字元集比較之下,新的字元集有更多的圖形字元。

    例如由IBM所發展的「擴展式BCD碼」(Extended Binary Coded Decimal Interchange Code, EBCDIC),原理乃採用8個位元來表示不同之字元,因此EBCDIC碼最多可表示256個不同字元,比ASCII碼多表示128個字元。例如EBCDIC編碼的'A'編碼11000001,'a'編碼為10000001。如下圖所示:

  • 4

    2-1 資料表示法簡介

    Unicode 碼Unicode碼的最大好處就是對於每一個字元提供了一個跨平台、語言與程式的統一數碼,它的前128個字元和ASCII碼相同,目前可支援中文、日文、韓文、希臘文…等國語言,同時可代表總數達216=65536個字元,因此您有可能在同一份文件上同時看到日文與泰文。

    Unicode跟其它編碼系統不同的地方,在於字表容納的總字數。

  • 5

    2-2 數值表示法

    整數表示法

    不帶號整數

    就是正整數,並且再儲存時不帶任何符號位元。例如一個正整數是以一個位元組(8 bits)來儲存,則共能表示28=256個數字,且數字範圍為0 ~ 255。

    總結來說,如果某電腦系統是以n位元來表示正整數,則可能表示的有效範圍為 0 ~ 2n-1。

    帶號整數

    可以表示正負整數,必須利用額外的1bit來表示符號位元,符號位元為0 表示為正數,如果是1則代表為負數,其他剩下的位元則表示此整數的數值。

    對於利用n個位元來表示帶號整數的正數範圍為(0 ~ 2n-1)

  • 6

    2-2 數值表示法

    補數簡介

    1補數系統(1´s Complement)是指如果兩數之和為1,則此兩數互為1的補數,亦即0和1互為1的補數。打算求得二進位數的補數,只需將0變成1,1變成0即可;例如011010102的1補數為100101012。

    2補數系統(2´s Complement)必須事先計算出該數的1補數,再加1即可。

  • 7

    2-2 數值表示法

    帶號大小值法 (Sign Magnitude)帶號大小值法 (Sign Magnitude)就是以最左邊的位元來表示正負號。

    例如以N位元表示一個整數,最左邊一位元代表正負號,其餘N-1位元表示該數值,則此數的變化範圍在 -2N-1-1~ +2N-1-1。例如 ±3的表示法:

  • 8

    2-2 數值表示法

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

  • 9

    2-2 數值表示法

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

    2,其「2’s補數」則為(11110111)

    使用「2’s 補數法」的處理流程最為簡單,而且運算上成本最低,至於末端進位,可直接捨去不需加1,並且0的正負數表示法只有一種,這也是目前電腦所採用的表示法。

  • 10

    2-2 數值表示法

    定點數表示法

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

  • 11

    2-2 數值表示法

    浮點數表示法

    是數學常見的科學符號表示法,浮點數表示法的小數點位置則取決於精確度及數值而定,另外不同電腦型態的浮點數表示法也有所不同。想要表示電腦內部的浮點數必須先以正規化(Normalized Form)為其優先步驟。假設一數N 能化成以下格式:

  • 12

    2-3 數字系統介紹

    二進位系統

    是在這個系統下只有0與1兩種符號,以2為基數,並且逢2 進位,在此系統中,任何數字都必須以0或1來表示。例如十進位系統的3,在二進位系統則表示為112。

    十進位系統

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

    310=1*21+1*20=112

  • 13

    2-3 數字系統介紹

    八進位系統

    是以8為基數,基本符號為0,1,2,3,4,5,6,7,並且逢8進位的數字系統。例如十進位系統的87,在八進位系統中可以表示為1278。

    十六進位系統

    是一套以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:

    1278=1*82+2*81+7=64+16+7=8710

    A1816=10*162+1*161+8*160=258410

  • 14

    2-4 數字系統轉換方式

    非十進位轉成十進位

    「非十進位轉成十進位」的基本原則是將整數與小數分開處理。例如二進位轉換成十進位,可將整數部份以2進位數值乘上相對的2正次方值,例如二進位整數右邊第一位的值乘以20,往左算起第二位的值乘以21,依此類推,最後再加總起來。

    至於小數的部份,則以2進位數值乘上相對的2 負次方值,例如小數點右邊第一位的值乘以2-1,往右算起第二位的值乘以2-2,依此類推,最後再加總起來。

    續下頁

  • 15

    2-4 數字系統轉換方式

    0.112=1*2-1+1*2-2=0.5+0.25=0.751011.1012=1*21+1*20+1*2-1+0*2-2+1*2-3=3.87510

    128=1*81+2*80=1010163.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

  • 16

    2-4 數字系統轉換方式

    十進位轉換成非十進位(1)

    (1). 十進位轉換成二進位6310=1111112

    續下頁

  • 17

    2-4 數字系統轉換方式

    (0.625)10=(0.101)2

    續下頁

  • 18

    2-4 數字系統轉換方式

    (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

  • 19

    2-4 數字系統轉換方式

    十進位轉換成非十進位(2)

    (2). 十進位轉換成八進位6310=(77)8

    (0.75)10=(0.6)8

    續下頁

  • 20

    2-4 數字系統轉換方式

    十進位轉換成非十進位(3)

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

    續下頁

  • 21

    2-4 數字系統轉換方式

    (0.62890625)10=(0.A1)16

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

  • 22

    2-4 數字系統轉換方式

    非十進位轉換成非十進位(1)

    例如我們將 (156)8 轉換成2進位與16進位:(156)8=1×82+5×81+6=11010

    再分別轉成十六進位及二進位

    續下頁

  • 23

    2-4 數字系統轉換方式

    非十進位轉換成非十進位(2)

    (1). 二進位→八進位例如將10101110111011.01010112換算成八進位:10,101,110,111,011.010,101,1

    依上述原則補0,3個3個一組

    分別轉換或8進位→ 25673.254

    續下頁

  • 24

    2-4 數字系統轉換方式

    非十進位轉換成非十進位(3)

    (2). 二進位→十六進位例如將10101110111011.01010112換算成十六進位:10,1011,1011,1011,0101,011

    依上述原則補0,每4個一組

    → 2BBB.5616