2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机组成原理知识点:数制与编码,希望能帮助大家!
数制与编码
1. 进位计数制及其相互转换
1)进位计数制
进位计数制是指按照进位制的方法表示数,不同的数制均涉及两个基本概念:基数和权。
基数:进位计数制中所拥有数字的个数。
权:每位数字的值等于数字乘以所在位数的相关常数,这个常数就是权。
任意一个R进制数X,设整数部分为n位,小数部分为m位,则X可表示为:
(2)十进制数转换成二进制数
通常要对一个数的整数部分和小数部分分别进行处理,各自得出结果后再合并。
u 对整数部分,一般采用除2取余数法,其规则如下:
将十进制数除以2,所得余数(0或1)即为对应二进制数最低位的值。然后对上次所得商除以2,所得余数即为二进制数次低位的值,如此进行下去,直到商等于0为止,最后得的余数是所求二进制数最高位的值。
u 对小数部分,一般用乘2取整数法,其规则如下:
将十进制数乘以2,所得乘积的整数部分即为对应二进制小数最高位的值,然后对所余数的小数部分部分乘以2,所得乘积的整数部分为次高位的值,如此进行下去,直到乘积的小数部分为0,或结果已满足所需精度要求为止。
(3)二进制数、八进制数和十六进制数之间的转换
八进制数和十六进制数是从二进制数演变而来的:
由3位二进制数组成1位八进制数;
由4位二进制数组成1位十六进制数。
对于一个兼有整数和小数部分的数以小数点为界,小数点前后的数分别分组进行处理,不足的位数用0补足。
对整数部分将0补在数的左侧,对小数部分将0补在数的右侧。这样数值不会发生差错。
2. 真值和机器数
真值:数据的数值通常以正(+)负(-)号后跟绝对值来表示,称之为“真值”。
机器数:在计算机中正负号也需要数字化,一般用0表示正号,1表示负号。把符号数字化的数成为机器数。
3. BCD码
在计算机中采用4位二进制码对每个十进制数位进行编码。4位二进制码有16种不同的组合,从中选出10种来表示十进制数位的0~9,用0000,0001,…,1001分别表示0,1,…,9,每个数位内部满足二进制规则,而数位之间满足十进制规则,故称这种编码为“以二进制编码的十进制(binary coded decima1,简称BCD)码”。
在计算机内部实现BCD码算术运算,要对运算结果进行修正,对加法运算的修正规则是:
如果两个一位BCD码相加之和小于或等于(1001)2,即(9)10,不需要修正;
如相加之和大于或等于(1010)2,或者产生进位,要进行加6修正,如果有进位,要向高位进位。
4. 字符与字符串
在计算机中要对字符进行识别和处理,必须通过编码的方法,按照一定的规则将字符用一组二进制数编码表示。字符的编码方式有多种,常见的编码有ASCII码、EBCDIC码等。
1)ASCII码
ASCII码用7位二进制表示一个字符,总共128个字符元素,包括10个十进制数字(0-9)、52个英文字母(A-Z和a-z)、34专用符号和32控制符号。
2)EBCDIC码为Extended Binary Coded Decimal Interchange Code的简称,它采用8位来表示一个字符。
3)字符串的存放
向量存储法:字符串存储时,字符串中的所有元素在物理上是邻接的。
串表存储法:字符串的每个字符代码后面设置一个链接字,用于指出下一个字符的存储单元的地址。
5. 校验码
数据校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法。其实现原理,是加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。
这样,可以通过检测编码的合法性来达到发现错误的目的。合理地安排非法编码数量和编码规则,可以提高发现错误的能力,或达到自动改正错误的目的。
码距: 码距根据任意两个合法码之间至少有几个二进制位不相同而确定的,仅有一位不同,称其码距为1。
1)奇偶校验码
它的实现原理,是使码距由1增加到2。若编码中有1位二进制数出错了,即由1变成0,或者由0变成1。这样出错的编码就成为非法编码,就可以知道出现了错误。在原有的编码之上再增加一位校验位,原编码n位,形成新的编码为n+1 位。增加的方法有2种:
奇校验:增加位的0或1要保证整个编码中1的个数为奇数个。
偶校验:增加位的0或1要保证整个编码中1的个数为偶数个。
2)海明校验码
它的实现原理,是在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中。当某一位出错就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了依据。
若将信息位左移r位,则可表示为多项式M(x).xr。这样就可以空出r位,以便拼接r位校验位。
CRC码是用多项式M(x).xr除以生成多项式G(x)所得的余数作为校验码的。为了得到r位余数,G(x)必须是r+1位。
设所得的余数表达式为R(x),商为Q(x)。将余数拼接在信息位组左移r位空出的r位上,就构成了CRC码,这个码的可用多项式表达为:
M(x)·xr+R(x)=[Q(x)·G(x)+R(x)]+R(x)
=[Q(x)·G(x)]+[R(x)+R(x)]
=Q(x)·G(x)
因此,所得CRC码可被G(x)表示的数码除尽。
将收到的CRC码用约定的生成多项式G(x)去除,如果无错,余数应为0,有某一位出错,余数不为0.