歡迎來到資訊編碼系統!
你好!在這一章中,我們將探索電腦到底是如何理解我們輸入的內容,比如字母「A」或數字「5」。由於電腦實際上只會說二進制(0 和 1)這種語言,我們需要一套特別的「秘密代碼」系統來將我們的世界翻譯成它們能理解的世界。這就是資訊編碼系統的核心所在!
如果剛開始覺得這些概念有點抽象,別擔心。看完這些筆記後,你會發現它就像使用麥片盒裡附贈的解碼器一樣簡單。讓我們開始吧!
1. 字元與純二進制:數字的兩難
首先要理解的是,根據用途的不同,電腦看待數字 5 的方式有兩種截然不同的區別。
純二進制表示法 (Pure Binary Representation)
當你想進行數學運算(例如 5 + 2)時,電腦會使用純二進制。十進制的 5 會直接儲存為其二進制的等值:\( 101_{2} \)。電腦會將其視為一個數值來處理。
字元編碼表示法 (Character Code Representation)
當你在文字訊息或 Word 文件中輸入「5」時,電腦不會把它當作一個用來加減的「數值」,而是把它視為一個符號,或者要在螢幕上繪製的圖形。為了做到這一點,它會使用字元編碼(例如 ASCII)。例如,在 ASCII 中,字元 '5' 實際上是由二進制代碼 \( 00110101 \) 來表示的。
類比: 想像數字 10。如果它印在足球球衣上,它就是一個字元(標籤);如果它是比賽中取得的入球數,它就是一個純二進制數值(數量)。
常見錯誤: 千萬別以為字元 '1' 的二進制就是 \( 00000001 \)。字元在編碼表中有自己獨特的「索引」代碼,這與它們的數學數值是完全不同的!
快速複習:
• 純二進制: 用於計算和數量。
• 字元編碼: 用於顯示文字和符號。
2. ASCII 與 Unicode:世界的字母表
我們如何決定哪種二進制模式代表哪個字母?我們使用編碼系統。你需要掌握的最重要的兩個系統是 ASCII 和 Unicode。
ASCII (美國資訊交換標準代碼)
ASCII 是最初的「黃金標準」。它使用 7 個位元 (bits) 來表示字元。
• 使用 7 個位元,可以有 \( 2^{7} = 128 \) 種不同的字元。
• 這對於英文字母(大小寫)、數字和基本標點符號來說已經足夠了。
Unicode
隨著互聯網走向全球,128 個字元已經不敷使用。那中文、阿拉伯文,甚至是表情符號該怎麼辦呢?Unicode 的出現就是為了解決這個問題。
• Unicode 使用更大數量的位元(通常是 16 或 32 個位元)。
• 它能表示超過 100 萬種不同的字元!
• 你知道嗎? Unicode 中的前 128 個代碼與 ASCII 完全相同。這使得 Unicode 具有「向後兼容性」。
為什麼要引入 Unicode?
ASCII 太過局限,無法表示世界上所有的語言或我們今天使用的大量符號。Unicode 提供了一個通用的標準,這樣從東京發出的訊息在倫敦開啟時,看起來是一模一樣的。
記憶小撇步:
• ASCII = American(美國的,有限的)
• Unicode = Universal(通用的,巨大的!)
重點總結: 對於英語來說,ASCII 小巧且高效;但對於全球化的多語言數位世界而言,Unicode 是不可或缺的。
3. 錯誤檢測與校正
當數據透過網絡(如 Wi-Fi)傳輸時,有時會因為電氣干擾而導致 1 不小心變成了 0。我們需要方法來發現這些錯誤!
同位元檢查 (Parity Bits)
同位元 (Parity bit) 是在二進制字串末端增加的一個額外位元,用來使 1 的總數變成偶數或奇數。
運作方式(偶同位,Even Parity):
1. 計算數據中 1 的個數。
2. 如果數據是 \( 1011001 \),其中有四個 1(是偶數)。
3. 為了保持偶數,同位元填入 0。總數變為:\( 10110010 \)。
4. 如果數據是 \( 1011000 \),其中有三個 1(是奇數)。為了變成偶數,同位元填入 1。總數變為:\( 10110001 \)。
如果接收端在「偶同位」系統中收到一個 1 的總數為奇數的位元組,它就知道發生了錯誤!
多數決 (Majority Voting)
這是一種不僅能檢測錯誤,還能修正錯誤的聰明方法。
電腦不只發送一次位元,而是連續發送三次。
• 範例: 若要發送 '1',電腦會發送 '1 1 1'。
• 如果接收端收到 '1 0 1',它會看到多數是 '1',因此推斷那個 '0' 是錯誤的。它會自動將該位元修正為 '1'。
檢查碼 (Check Digits)
你在日常生活的條碼 (barcodes) 和書籍的 ISBN 編號上都能看到這些。檢查碼是透過特定的數學公式,根據之前的所有數字計算出來的最後一個數字。
當掃描器讀取條碼時,它會重新計算該公式。如果計算出的結果與標籤上的檢查碼不符,它就會發出警示聲,告訴收銀員掃描失敗。
常見錯誤: 學生常以為同位元檢查可以修正錯誤。其實不行!它們只能檢測到出了問題。在上述列表中,只有多數決能夠真正地即時修正錯誤。
快速複習:
• 同位元檢查: 增加一個位元使 1 的總數為偶數或奇數,用於檢測單一位元錯誤。
• 多數決: 多次傳送數據,既能檢測也能修正錯誤。
• 檢查碼: 字串末尾的計算值(如條碼),用於驗證數據是否正確。
總結:宏觀視野
在本章中,我們學習到電腦本質上是龐大的翻譯機器。它們使用二進制來儲存數值,使用 ASCII/Unicode 將這些數值轉化為我們閱讀的文字,並透過錯誤檢測(如同位元檢查和多數決)確保這些翻譯在世界各地傳輸時不會損壞。繼續練習那些同位元檢查的計算,你很快就能完全掌握了!