1. 計算機科學基礎知識
1.1 數制及其轉換
二進制、八進制、十進制和十六進制等常用數制及其相互轉換
1.2 計算機內數據的表示
數的表示(原碼、反碼、補碼、移碼表示,整數和實數的表示,精度和溢出)
原碼表示法:最高位是符號位。數值X的原碼記為[X]原,如果機器字長為n(即采用n個二進制位表示數據),則原碼表示:
[+0]原=0 0000000 [-0]原=1 0000000
[+1]原=0 0000001 [-1]原=1 0000001
[+127]原=0 1111111 [-127]原=1 1111111
[+0.5]原=0 .1000000 [-0.5]原=1 .1000000
反碼表示法:數值X的反碼記為[X]反,如果機器字長為n,則原碼表示:正數的反碼表示同原碼,負數的反碼表示將正數原碼表示中的01反過來。
補碼表示法:負數的補碼表示將正數原碼表示中的01反過來再+1。0有唯一補碼,全為0。
[+0.5]補=0 .1000000 [-0.5]補=1 .1000000
[+1]補=0 0000001 [-1]補=1 1111111
在計算機系統中常采用補碼來表示和運算數據,原因是采用補碼可以簡化計算機運算部件的設計。
移碼表示法:將補碼的符號位取反
浮點表示法:階符 階碼 數符 尾數,例:一個二進制數N可以表示為:N=2E*F,其中2是階符,E是階碼,F是尾數。
浮點數表示的精讀取決於尾數的寬度,范圍取決於基數的大小和指數的寬度。
對於特定機器而言,指數(階符)是固定不變的,所以在浮點數中指數並不出現。
計算機在進行浮點數的相加(減)運算之前先進行對階操作,若x的階碼大於y的階碼,則應將y的階碼擴大至與x的階碼相同,且使y的尾數部分進行算術右移。
非數值表示(字符和漢字表示,聲音表示、圖像表示)
1.3校驗方法和校驗碼(奇偶校驗碼、海明校驗碼、循環冗余校驗碼)
奇偶校驗碼:通過在編碼中增加一校驗位來使編碼中1的個數為奇數(奇校驗)或者為偶數(偶校驗),從而使碼距變為2(奇偶校驗碼添加了1位校驗碼,使得要變成另一個碼字最少要修改兩位,這就使其碼距變成2)。於奇校驗,它可以檢測代碼中奇數位出錯的編碼,但不能發現偶數位出錯的情況。
將一個碼字變成另一個碼字時必須改變的最小位數就是碼字之間海明距離,簡稱碼距。
根據海明的研究發現,可以發現“≤碼距-1”位的錯誤。
根據海明的研究發現,可以糾正“<碼距/2”位的錯誤,因此如果要能夠糾正n位錯誤,則所需最小的碼距應該是“2n+1”。
海明校驗碼:在數據位之間的特定位置上插入k個校驗位通過擴大碼距來實現檢錯和糾錯。
設數據位是n位,校驗位是k位,則n和k必須滿足以下關系:2k-1≥n+k
G4G3G2G1的十進制值指出了發生錯誤的位置,將其取反即可糾正錯誤。
循環冗余校驗碼(CRC校驗碼):
求CRC編碼采用的是模2運算,按位運算,不發生進位和借位。
CRC校驗碼的計算:
例如:原始報文為“11001010101”,其生成多項式為:“x 4 +x 3 +x+1”。在計算時,是在原始報文的后面若干個0(等於校驗碼的位數,而生成多項式的最高冪次就是校驗位的位數,即使用該生成多項式產生的校驗碼為4位)作為被除數,除以生成多項式所對應的二進制數(根據其冪次的值決定,得到11011,因為生成多項式中除了沒有x 2之外,其他位都有)。然后使用模2除,得到的商就是校驗碼。
然后將0011添加到原始報文的后面就是結果:110010101010011。
檢查信息碼是否有CRC錯誤:
要想檢查信息碼是否出現了CRC錯誤的計算很簡單,只需用待檢查的信息碼做被除數,除以生成多項式,如果能夠整除就說明沒有錯誤,否則就是出錯了。另外要注意的是,當CRC檢查出現錯誤時,它是不會進行糾錯的,通常是讓信息的發送方重發一遍。
實際應用時,發送裝置計算出CRC值並隨數據一同發送給接收裝置,接收裝置對收到的數據重新計算CRC並與收到的CRC相比較,若兩個CRC值不同,則說明數據通信出現錯誤。
1.4 算術運算和邏輯運算
計算機中的二進制數運算方法
邏輯代數的基本運算
1.5 其他數學基礎知識
常用數值計算
排列組合,概率論應用,應用統計(數據的統計分析)
編碼基礎
命題邏輯、謂詞邏輯、形式邏輯的基礎知識
運籌基本方法
浮點數表示的精讀取決於尾數的寬度,范圍取決於基數的大小和指數的寬度。