【计算机组成原理】第二章 数据的表示和运算

BCD码

8421是最常见的BCD码,其中1010~1111是不使用的

校验码——奇偶校验码

奇(偶)校验码:所有数(包括校验位)加在一起是奇数(偶数)。

校验码——循环冗余码CRC(主要用来检错)

商不重要!!数据+余数是最终的CRC码。
CRC的特点:

  1. 具有r检测位的多项式能够检测出所有小于或等于r的突发错误。
  2. 长度大于r+1的错误逃脱率是 1 / 2 r 1/2^r 1/2r

校验码——海明码(有一位纠错能力)

(n,k)海明码中n是加上码之后的总长度,k是数据位数。冗余位=n-k=r
重要不等式:
2 r > = k + r + 1 2^r>=k+r+1 2r>=k+r+1
r是校验码位数,k是数据位数。

例:数据为101110110

k=9,则r至少为4才满足不等式n=k+r=13
然后列表(标号从右往左标,数据写入直接从左往右抄下来):

13(1101) 12(1100) 11(1011) 10(1010) 9(1001) 8(1000) 7(0111) 6(0110) 5(0101) 4(0100) 3(0011) 2(0010) 1(0001)
1 0 1 1 1 校验位 0 1 1 校验位 0 校验位 校验位

然后计算各校验位
找到数字为1的标号:13(1101)、11(1011)、10(1010)、9(1001)、6(0110)、5(0101)
把这些数不进位的加在一起1+1=0,0+0=0,1+0=1
得0110,从左到右填到表里的检验位

13(1101) 12(1100) 11(1011) 10(1010) 9(1001) 8(1000) 7(0111) 6(0110) 5(0101) 4(0100) 3(0011) 2(0010) 1(0001)
1 0 1 1 1 0 0 1 1 1 0 1 0

海明距

L − 1 = D + C 且 D > = C L-1=D+C 且 D>=C L1=D+CD>=C
L是海明距,D是检测出的错误位数,C是纠正的错误位数。

浮点数

规格化浮点数

对于阶的基数是 2 r 2^r 2r的浮点数

原码 补码
正数/负数 尾数前r个不全是0 符号位和尾数前r个不完全一样

IEEE 754标准浮点数

数符(一位)+阶码+尾数
阶码用移码表示、尾数用原码。这里的移码和普通移码不一样,是在原数值上 + 2 n − 1 − 1 +2^{n-1}-1 +2n11,n是阶码位数。

符号位S 阶码 尾数 总位数 偏置值
短实数 1 8 23 32 127
长实数 1 11 52 64 1023
临时实数 1 15 64 80 16383

特别说明 阶码全0和阶码全1有自己的特别意义,在求IEE 754表示的最大最小范围的时候应该注意!

IEEE 754标准可以看成规格化浮点数的再规范,IEEE 754规格化数不需要遵循规格化浮点数标准,它有自己的标准

定点数和浮点数

  1. 移码=补码符号位取反
  2. 定点数发生溢出直接报错,浮点数尾数溢先考虑阶码对阶。

加减计算注意的地方

1、单符号位时,符号位和最高位不同的时候产生溢出。
2、双符号位时,符号位10是负溢出,01是正溢出。
3、不管双符号还是单符号,都需要溢出判断电路,一般用“异或”门来实现。

乘除计算注意点

1、补码一位乘法中最多n次移位,n+1次加减法。原码最多均为n。
2、在不恢复余数除法中,最终余数为负时候,才需要一次恢复余数。

猜你喜欢

转载自blog.csdn.net/weixin_39529891/article/details/107566861