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 其他数学基础知识
常用数值计算
排列组合,概率论应用,应用统计(数据的统计分析)
编码基础
命题逻辑、谓词逻辑、形式逻辑的基础知识
运筹基本方法
浮点数表示的精读取决于尾数的宽度,范围取决于基数的大小和指数的宽度。