440 likes | 517 Views
資訊科技概論與奧妙單元二. 常用的數字系統. 數字系統是用來表示數量的規則與符號,一般常見的數字系統有 10 進位數字系統、 2 進位數字系統、 8 進位數字系統以及 16 進位數字系統等 例如 10 進位數字系統,是指使用 0,1,2,3,4,5,6,7,8,9 等 10 個基底符號來表示數量的數字系統;而 2 進位數字系統則是使用 0 和 1 兩個符號來表示數量大小的數字系統. 各數字系統使用的符號.
E N D
常用的數字系統 • 數字系統是用來表示數量的規則與符號,一般常見的數字系統有10進位數字系統、2進位數字系統、8進位數字系統以及16進位數字系統等 • 例如10進位數字系統,是指使用0,1,2,3,4,5,6,7,8,9等10個基底符號來表示數量的數字系統;而2進位數字系統則是使用0和1兩個符號來表示數量大小的數字系統
各數字系統使用的符號 • 我們熟悉的10進位數字3010(右下角的數字代表數字系統的種類),以2進位數字系統表示為111102,以8進位數字系統表示為368,以16進位數字系統表示為1E16
各種數字系統的數值計算 • 以6553410為例,其值計算如下: • 6*104 + 5* 103 + 5 * 102 + 3 * 101 + 4 * 100 • 2進位數字 • 110110012=1 * 27 + 1 * 26 + 0 * 25 + 1 * 24 + 1 * 23 + 0 *22 + 0 *21 + 1 * 20 • 8進位數字 • 37218= 3 * 83 + 7 * 82 + 2 * 81 + 1 *80 • 16進位數字 • 2FFF16=2 * 163 +F * 162 + F * 161 + F* 160 • 數字系統的數值計算方式可歸納如下: • Nm = apmp + ap-1mp-1 + ap-2mp-2 +…… + a0m0 • 其中,m為數字系統的底數,或稱為基底
10進位數值轉2進位數值 • 9710轉換成2進位數值等於11000012 • 小數點後的計算方式改成乘法->原因
10進位數值轉16進位數值 • 6553610等於1000016
10進位數值轉8進位數值 • 12910等於2018
轉換2進位與8進位、16進位數值 • 2進位數字系統轉換為8進位或16進位數字系統,不必經過除法的計算,每3個2進位的數位等於一個8進位的數位,每4個2進位的數位等於一個16進位的數位。例如: 110100102=D216 • 2進位數字的前面四個數位(1101)轉換為16進位數字D,後四個數位(0010)轉換為16進位數字2 • 將16進位數字的每一個數位轉換為4個2進位數位;將8進位數字的每一個數位轉換為3個2進位數位。例如: 3FC16=0011111111002 • 16進位數字3轉換為0011,16進位數字F轉換為2進位數字1111,16進位數字右邊的C,轉換為2進位數字1100。因此,3FC16可轉換為0011111111002
轉換2進位與8進位、16進位數值 • 使用相同的方法,可以轉換2進位與8進位的數值: • 1011002=548 • 168=0011102 • 若要將8進位數字轉換為16進位數字,或將16進位數字轉換為8進位數字,則必須將數字轉換為2進位或10進位數字,然後再轉換為其它數字系統
加法運算 • 10進位數字系統的數字相加時,只要相加後大於或等於10,就產生進位 • 同樣的加法運算原理,2進位數字系統的數字相加時,只要相加後大於或等於2時,就產生進位;16進位數字的相加,只要相加後大於或等於16時,就產生進位;8進位數字的相加,只要相加後大於或等於8時,就產生進位
補數的換算 • 補數可應用於計算機中的減法運算 • 在10進位數字系統中,610的補數為410、910的補數為110、1210的補數為8810;在2進位數字系統中,12的補數為12、112的補數為012、11012的補數為00112 • 歸納而言,某一m位數的數值N(a進位數字系統)的補數為: am-N • 因此,1210的補數為102-12等於8810
用補數進行減法運算 • 前面提到補數可應用於計算機中的減法運算,也就是應用於2進位數字系統的減法運算 • 例如:計算2進位數值: P2 - Q2 • 以補數來進行減法運算的規則如下: • 計算P和Q中較大的位數n • 計算Q之補數R=2n-Q • 計算P+R之結果S • 判斷S之正負數 • 正數:當S之位數大於n時,結果為S刪去多出的位數。 • 負數:當S之位數等於或小於n時,則結果為S之補數加上負號
補數減法 • 111012 - 101102 = ? • 位數n=5 • 計算101102之補數為25-101102=010102 • 111012+ 010102等於1001112 • 1001112之位數為6大於5,所以結果為 + 001112
補數減法 • 10002 - 11002 = ? • 位數n=4 • 11002之補數為01002 • 10002+ 01002等於11002 • 11002之位數為4,結果為11002之補數01002加上負號,即-01002
編碼系統 • 鍵盤上的每一個按鍵,都對應了一個編碼,在鍵盤上按下某一個按鍵時,鍵盤就會送出該按鍵所對應的編碼資料到電腦中 • 電腦和電腦間採用的編碼系統必須相同,所產生的資料才能交換,否則會造成甲電腦產生的資料,在乙電腦上出現無法顯示或亂碼的現象
ASCII碼 • BCD • EBCDIC • ASCII(American Standard Code for Information Interchange,簡稱為美國資訊標準交換碼)是使用七個位元來表示資料的編碼系統,這種編碼系統類似EBCDIC碼,是個人電腦上使用最普遍的編碼系統
數值編碼 • 2421碼 • 84-2-1碼 • 超三碼(Excess-3 Code) • 二五碼 • 五取二碼
經緯冗餘碼(LRC/VRC) • 早期運用在九軌磁帶上的兩種檢查碼 • 額外儲存三個VRC或LRC編碼 • XOR運算-相同為0,不同為1
循環冗餘碼 (Cyclic Redundancy Code,CRC) • 雙方共同決定一個n位元的二進位數值 • 將欲傳送資料尾端加入n-1個0 • 將加入n-1個0的資料與所決定的二進位數值進行XOR運算 • 將運算結果加入欲傳送資料尾端後傳送 原資料 1101011011 決定值為10011 運算結果為1110 傳送11010110111110 接收方進行同樣運算,若得到結果為0--正確--將接收到的資料去掉尾端n-1個字元,可還原得到原始資料
葛雷碼(Gray Code) • 任何連續的兩個二進位表示法,只有一個位元不相同;其餘相同 • 用二個位元來表示整數0,1,2,3, 方法一: 即G1=﹛0=00,1=01,2=11,3=10﹜ 方法二: 即G2=﹛00=10,1=11,2=01,3=00﹜。 • 學者研究出一種二進碼,稱為反射葛雷碼(Reflected Gray code),其編碼方式唯一而且有系統,故廣泛應用在計算機領域
漢明碼(Hamming Code) • 屬於一種ECC • 當錯誤更正碼的漢明距離大於等於D時,只要發生錯誤的位元不超過D - 1個,系統都能夠偵測出來,而只要發生錯誤的位元不超過 (D - 1) / 2個,系統都能夠加以更正
漢明碼(Hamming Code) • 可檢查、可更正,常用於衛星通訊傳輸 原資料 1101011011 需要四個檢查位元 1 101 011011 0011 0001 0101 0010 0000 0011 0111 0000 0000 0101 1010 0000 1011 0111 0000 0000 1101 1001 1110 1010 1011 0000 1101 1110 進行XOR運算,結果為0011--傳送11101010011011 接收方假設收到11101010111011,進行同樣運算,若得到結果為0--正確--否則得到的數值即指出錯誤位元
條碼(Bar Code) • 利用粗細不同的線條表示0~9數字,透過光學儀器很快地掃瞄並認得商品所附之條碼所代表的數字 • 特性 不易塗改 不受列印品質與大小的影響 不受方向性不同的影響 請閱讀條碼相關新技術資料
霍夫曼碼(Huffman Code) • 不固定長度的編碼方式,符號編碼長度與出現頻率成反比 • 編碼步驟 找出所有符號出現頻率 將頻率最低的兩者相加得出另一個頻率 重覆以上第二步驟,將最低兩個頻率相加,直到只剩下一個頻率為止 根據合併關係分配0與1,而形成一棵編碼樹
霍夫曼碼(Huffman Code) • 實例─編碼 假設編碼系統有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。
霍夫曼碼(Huffman Code) • 實例─解碼 請依照上一題所設計霍夫曼碼,將111110010000110進行解碼? 解碼結果 FCADDB
中文字編碼 • 前面介紹的BCD、EBCDIC和ASCII編碼系統,只適用於英文字母、數字等符號的編碼 • 中文的字數很多,必須使用特殊的編碼結構,例如:BIG5碼、公會碼、電報明碼、王安碼、CCCII碼、Unicode碼等,都是為中文字設計的編碼系統
BIG5碼 • BIG5碼是台灣地區應用最普遍的編碼系統,這套編碼系統由資策會策劃制定,BIG5碼是一種使用16位元(2 bytes)的中文編碼系統 • 雖然BIG5碼使用16個位元(兩個位元組,共有65536種碼)來編碼,但其中一些位元必須做為區別位元,以分辨資料中哪些是中文或英文字元,所以只能編出一萬多個中文字碼
BIG5的編碼範圍 • 每一個中文字碼(以16進位表示)均由4個16進位符號組成,而每兩個符號使用一個位元組,前面的位元組稱為高位元組,後面的位元組稱為低位元組
CCCII碼 • CCCII碼(Chinese Character Code for Information Interchange,全漢字標準交換碼)是文建會與中研院中美科學學術委員會共同贊助中國圖書館協會所編訂,是一種使用24位元(3 bytes)來編碼的中文編碼系統,國內大多數中文圖書館均採用此編碼系統
Unicode碼 • Unicode碼(又稱為萬國碼),是Unicode 技術委員會(UTC)所制定的國際性文字碼 • 隨著網際網路的流行,國際性文字格式標準的制定工作越來越重要,Unicode組織於是在1988開始著手時Unicode的制定工作
Unicode的特性 • Unicode是以ASCII為基礎,使用16位元編碼方式來支援世界語言的編碼系統,它把原本僅佔一個位元組的西方字元,重新設定為類似中文以兩個位元組來編碼。如下圖所示:
Unicode的字元種類與字數 • Unicode的制定工作相當繁複,必須蒐集、歸納及整理來自世界各地的不同文字,目前Unicode收錄的字碼種類與字數整理如右: