預習非數值數據的編碼表示
一、非數值數據的編碼表示
1.邏輯值
- n 位二進位數可表示 n 個邏輯值
- 邏輯數據只能參加邏輯運算
- 邏輯數據和數值數據都是一串0/1序列
2.西文字元
- 組成:拉丁字母、數字、標點符號以及一些特殊符號組成
- 字元的集合叫字符集,字符集中每一個字元都有一個二進位編碼的0/1序列,構成了該字符集的程式碼表(碼錶)
- 主要用於外部設備和電腦之間交換資訊
- 西文字元的內碼就是ASCII碼

3.漢字字元
- 輸入碼:由於漢字字數多,無法使每個漢字與西文鍵盤上的一個鍵相對應,因此必須使每個漢字用一個或幾個鍵來表示,這種對每個漢字用相應的按鍵進行的編碼表示就稱為漢字的輸人碼,又稱外碼。因此漢字的輸人碼的碼元(即組成編碼的基本元素)是西文鍵盤中的某個按鍵
- 字符集與漢字內碼:漢字被輸人到電腦內部後,就按照一種稱為內碼的編碼形式在系統中進行存儲、查找,傳送等處理。對於西文字元,它的內碼就是ASCII碼。對於漢字內碼的選擇,必須考慮以下幾個因素:
(1)不能有二義性,即不能和 ASCII 碼有相同的編碼
(2)要與漢字在字型檔中的位置有關係,以便於漢字的處理、查找
(3)編碼應盡量短
二、數據的寬度和存儲
1.數據的寬度和單位
- 電腦中處理、存儲和傳輸資訊的最小單位:比特(bit)
- 電腦中,二進位資訊的計量單位:位元組(byte)
- 1 byte = 8 bit
- 不同電腦中字的長度和組成不完全相同,字用來表示被處理資訊的單位,用來度量各種數據類型的寬度
- 字長等於CPU內部用於整數運算的運算器位數和通用暫存器寬度
- 同一類型的數據並不是所有機器都採用相同的數據類型,分配的位元組數隨機器和編譯器的不同二不同
2,數據的存儲和排列順序
- 多位元組數據存放在連續的位元組序列中,各位元組在連續位元組系列中的排列順序不同,有兩種排列方式:大端和小端
- 大端方式將數據的最高有效位元組MSB存放在低地址單元中,將最低有效位元組LSB存放在高地址單元中,小端與之相反
- Sun(大端方式)和Alpha(小端方式)之間不能直接進行數據傳送,因為它們採用了不同的存放方式
三、數據效驗碼
1.效驗碼
- 定義:除原數據資訊外,還增加若干位編碼,這些新增的程式碼稱為效驗碼
- 海明距離:由若干位程式碼組成的一個字叫碼字,將兩個碼字逐位比較,具有不同程式碼的位的個數叫做這兩個碼字間的距離
2.奇偶效驗碼(對整個數據編碼生成一個校驗位)
- 奇偶效驗根據數據的奇偶性變化來檢錯,只能檢測奇數個錯,不具有糾錯能力
- 奇偶效驗碼常用於存儲器讀寫檢查或位元組傳輸過程中的數據效驗
3.海明效驗碼(多重奇偶校驗碼)
- 海明效驗是分組奇偶效驗,單糾錯碼(SCE)只能糾正一位錯,「糾一檢二」碼(SEC-DED)可糾正一位錯並檢測兩位數
- 效驗位和故障字的位數是相同的
- 分組的確定:數據位和校驗位一起存儲,通過它們各位排列的碼字中的出錯位置與故障字的數值建立關係,這樣就可以通過故障字的值找到該碼字中的哪一位發生了錯誤
a.故障字各位全部為0,沒有發生錯誤
b.故障字有且只有一位1.則只有一個發生錯誤,不需要糾正
c.故障字中多位為1,表示有一個數據位出錯,其位置在碼字中的位置通過故障字的數值確定,糾正只需要將出錯位取反
- 校驗碼的生成和檢錯,糾錯:對每組採用相應的奇偶校驗,得到相應的一個校驗碼。
- 校驗碼若同時具有發現兩位錯和糾正一位錯的能力,稱為單糾錯和雙糾錯碼,簡稱「糾一檢二」碼
循環冗餘效驗碼
- 簡稱CRS碼,是一種具有較強檢錯、糾錯能力的效驗碼,常用於外存儲器的數據效驗
- 循環冗餘碼效驗通過某種數學運算在數據和效驗位之間建立約定關係,主要用於對大批量數據的存儲或傳輸效驗