數字系統與資料表示法 電腦的基本單位 數字系統 數值資料表示法 數值資料與算數運算 數碼系統 浮點數表示法 文字表示法 資料來源:周裕達教授
§電腦的基本單位 位元(Bit) 電腦中最小的的儲存單位叫做位元, 一個位元有 0 與 1 兩種狀態。 二進位系統(binary system) 開:1 關:0 1 資料來源:周裕達教授
位元組(Byte):8 bits 字組(Word):2 Bytes 1 byte = 8 bits 1 KB =210 bytes 1 MB =220 bytes 1 GB =230 bytes 1 TB = 240 bytes 資料來源:周裕達教授
§數字系統 數字系統(Number System) 是計算與數之命名的方法。 常見數字系統 十進位系統(decimal) 六十進位系統 二進位系統(binary) 八進位系統(octal) 十六進位系統(hexadecimal) 資料來源:周裕達教授
數字系統的表示 數元(digit)的個數,即決定了何種數字系統。 K 進位數字系統,即以 K 為基底的數字系統,其數元共有 K 個,即0, 1, 2, ..., K-1。 十進位數字系統是一套以十為基底的數字系統。 以 K 為基底的數字 N,通常寫成 Nk = (Ap-1Ap-2….A1A0.A-1A-2….A-q)k MSD LSD 資料來源:周裕達教授
資料來源:周裕達教授
資料來源:周裕達教授
例題 基底為10 123410 =1 103 +2102+3101+4 。 基底為2 010000012 =1 26 +120 =6510 10進位→2進位 7410 =(?)2 74 2 37 18 1 9 4 LSB MSB 01001010 8 Bits 資料來源:周裕達教授
資料來源:周裕達教授
資料來源:周裕達教授
資料來源:周裕達教授
資料來源:周裕達教授
資料來源:周裕達教授
§數值資料表示法 帶符號大小 1’s 補數 2’s 補數 MSD 當成符號位元:0→正數, 1→負數。 n 位元可表示範圍: -(2n-1-1 )~-0 →0~ (2n-1-1 )。 不易用邏輯電路製做加減法器。故這種表示法不被電腦採用。 1’s 補數 正數:與帶符號表示法一樣。 負數:將正數結果之0→1, 1→0。 2’s 補數 1’s 補數+1。 資料來源:周裕達教授
補數表示法。 1’ 補數及2’補數。 N位元數字系統:2N 種組合。 2N-1 此段當成負數 -0 -(2N-1-1) 一的補數 -1 2N-1 此段當成負數 -0 -(2N-1-1) 一的補數 -1 -2N-1 二的補數 資料來源:周裕達教授
三種表示法所能表示之範圍 資料來源:周裕達教授
4 位元之三種表示法 四位元帶符號 四位元一的補數 四位元二的補數 資料來源:周裕達教授
§數值資料算數運算 加法 111 1 001110102→(58)10 溢位(overflow) 000110112→(27)10 兩數相加或相減之後結果→超出位元系統所能表示範圍。 127+1→100000002(-128) 正負符號位元出現異常:正數相加→負數;負數相加→正數;一正數減去負數→負數;一負數減去一正數→正數。 001110102→(58)10 000110112→(27)10 010101012→(85)10 + 111 1 資料來源:周裕達教授
減法 利用補數觀念來完成。 A-B 等於 A + (B 的K’s 補數)。 1110102-111001012=? 計算結果位數超過系統可表示位元→超過部分省略。 001110102→(58)10 000110112→(27)10 010101012→(85)10 + 資料來源:周裕達教授
乘法 例題 11012×10112=? 10112→(11)10 11012→(13)10 10001112→(143)10 × 1101 0000 資料來源:周裕達教授
除法 例題 111010012÷10012=? 1001 11101001 11001 1011 10001 1000 商數 餘數 資料來源:周裕達教授
§數碼系統 BCD 碼 2421碼 84-2-1碼 超三碼 二五碼 五取二碼 葛雷碼 條碼 霍夫曼碼 資料來源:周裕達教授
BCD 碼 用四個位元表示一個阿拉伯數字。 4個位元由左到右,其權重(Weights)都不相同,分別是8,4,2,1。 資料來源:周裕達教授
2421 碼 用四個位元表示一個阿拉伯數字。 4個位元由左到右,其權重(Weights)分別是2,4,2,1→此編碼不是唯一。 十進位系統的9補數正好等於二進位系統的1補數,所有具有這種特性的碼被稱為自補碼(Self-Complementing Code) 資料來源:周裕達教授
84-2-1 碼 用四個位元表示一個阿拉伯數字。 4個位元由左到右,其權重(Weights)分別是8,4,-2,-1。 84-2-1碼也是一個自補碼。 資料來源:周裕達教授
超三 碼(Excess-3 Code) 先用四個位元表示0~9數字。 將上述二進位結果加3。 超三碼也是一個自補碼。 資料來源:周裕達教授
資料來源:周裕達教授
二五 碼 使用七個位元表示0~9數字。 7個位元由左到右,其權重(Weights)分別是5,0,4,3,2 ,1 , 0。 前兩位元及後五位元一定要有一個位元為1。 十進制碼 1 2 3 4 5 6 7 8 9 二五碼 5043210 0100001 0100010 0100100 0101000 0110000 1000001 1000010 1000100 1001000 1010000 資料來源:周裕達教授
五取二碼 使用五個位元表示0~9數字。 5個位元一定要有兩個位元為 1,三個位元為 0。 十進制碼 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 五取二碼 00011 00101 00110 01001 01010 01100 10001 10010 10100 11000 資料來源:周裕達教授
葛雷碼(Gray Code) 方法一: 任何連續的兩個二進位表示法,只有一個位元不相同;其餘相同。 用二個位元來表示整數0,1,2,3, 方法二: 即 G2=﹛00=10,1=11,2=01,3=00﹜。 學者研究出一種二進碼,稱為反射葛雷碼(Reflected Gray code),其編碼方式唯一而且有系統,故廣泛應用在計算機領域。 資料來源:周裕達教授
葛雷碼(Gray Code)(續) 以遞回方式產生唯一反射碼 Gn+1={0Gn, 1Gnref},G1={0,1},n>=1。 資料來源:周裕達教授
葛雷碼(Gray Code)(續) 由十進位→葛雷碼 資料來源:周裕達教授
葛雷碼(Gray Code)(續) 由葛雷碼→十進位 資料來源:周裕達教授
表2-2.1 十進位制與其他不同碼之對照表 十進制碼 BCD (8421) 超值-3碼 8,4,-2,-1 葛雷碼 二五碼 5043210 0000 0011 0100001 1 0001 0100 0100010 2 0010 0101 0100100 3 0110 0101000 4 0111 0110000 5 1000 1000001 6 1001 1000010 7 1010 1000100 8 1011 1100 1001000 9 1101 1010000 資料來源:周裕達教授
條碼(Bar Code) 利用粗細不同的線條表示0~9數字,透過光學儀器很快地掃瞄並認得商品所附之條碼所代表的數字。 特性 不易塗改。 不受列印品質與大小的影響。 不受方向性不同的影響。 資料來源:周裕達教授
霍夫曼碼(Huffman Code) 不固定長度的編碼方式,符號編碼長度與出現頻率成反比。 編碼步驟 找出所有符號出現頻率。 將頻率最低的兩者相加得出另一個頻率。 重覆以上第二步驟,將最低兩個頻率相加,直到只剩下一個頻率為止。 根據合併關係分配0與1,而形成一棵編碼樹。 資料來源:周裕達教授
霍夫曼碼(續) 實例─編碼 假設編碼系統有A, B,C, D, E, F 等六個符號,期出現頻率依序為0.2, 0.15, 0.3, 0.18, 0.05, 0.12,試設計霍夫曼碼? 編碼結果 A: 01; B:110; C:10 D:00; E:1110;F:1111 總共所需位元:17 bits。 資料來源:周裕達教授
霍夫曼碼(續) 實例─解碼 請依照上一題所設計霍夫曼碼,將111110010000110 進行解碼? 解碼結果 FCADDB 資料來源:周裕達教授
§浮點數表示法 表示實數資料 單倍精確浮點數:32 位元。 表示法 雙倍精確浮點數:64 位元。 延伸精確浮點數:80 位元。 1 位元 8 位元 23 位元 正負符號 偏移指數 小數部分 b31 b30 b29………..b23 b22 b21………..b0 資料來源:周裕達教授
說明 正/負符號 b31=0表示此實數為正數﹔b31=1表示此實數為負數。 偏差指數 8位元表示的非負整數值為0~255。 實數可由很小至很大﹐故需要正﹑負二種指數﹐因此以127為指數偏差值﹐實際的指數值=偏差指數-127。 偏差指數的範圍為127 ~ 255﹐則代表真正指數值為0 ~ 128。 偏差指數介於126 ~ 0之間﹐則代表真正指數值介於-1 ~ -127之間。 偏差指數是132﹐其真正指數則為5﹔偏差指數是120﹐其真正指數即是-7。 小數部分 此處的小數部分是經過正規化(normalization)後的小數。由於它有23位元﹐所以可準確到小數點後23位。 資料來源:周裕達教授
範例 資料來源:周裕達教授
公式 一個32位元的浮點表示法字串其所代表的真正實數可用下列公式導出: (-1)S ×(1 + M) ×2(E- 指數偏差值) S: 正/負符號,0表示此實數為正數;1表示此實數為負數。M: 小數部分,即b22…b0。E: 偏差指數即b30…b23,8位元的非負整數值0~255。 資料來源:周裕達教授
§文字表示法 文數資料 含文字(Letter)、符號(Symbol)與數字(Digit)的資料。 所有不可做算數運算的資料皆屬此類。 資料來源:周裕達教授
表示方法 ASCII(讀作as-kee)碼(America Standard Code for Information Interchange,美國標準資訊交換碼) IBM,UNIVAC等某些大型電腦採用的擴充式二進位交換碼EBCDIC(讀作eb-ce-dick)碼(Extended Binary Coded Decimal Interchange Code)。 中文字則大多採用BIG-5碼,但也有一些系統採用倚天碼,電信碼及IBM 5550碼等。 資料來源:周裕達教授
8-位元的ASCII碼,則可有 =256種不同的組合。 EBCDIC碼是由 8 位元來表示一個字元。 由七個位元來表示一個字元(Character) 。 8-位元的ASCII碼,則可有 =256種不同的組合。 EBCDIC碼是由 8 位元來表示一個字元。 EBCDIC碼將位元分成兩組各 4 個位元,其中一組叫區位元(Zone bits),另一組叫數元位元(Digit bits)。 區位元用以說明此字元是字母、無正負號的數字、正負符號及一些特殊符號。而數元位元用來表示阿拉伯數字 0~9。 中文碼用的是另一套表示法,它和ASCII碼及EBCDIC碼不同。中文碼是以2個位元組(16個位元)來表示的 。 資料來源:周裕達教授
7 位元 ASCII 表 資料來源:周裕達教授
資料來源:周裕達教授
資料來源:周裕達教授
統一碼(Unicode) 為應付日益增多的字元,例如中文及日文等其它有別於英文的語言,目前國際標準協會正致力於 16 位元的字元碼(Character code),稱作統一碼)以作為世界標準。 資料來源:周裕達教授