计算机组成原理——数据的表示与运算1
一、数
1.数制与编码
-
数值:BCD码,用四位二进制来表示一位十进制数,有冗余
(1)8421码:8 4 2 1对应每位权值的状态;若超出范围,需加0110修正(向高位进1)
(2)余3码:8421码+(0011)
(3)2421码:2 4 2 1对应每位权值;表示0~4时,最高位为0,表示5~9时最高位为1 -
字符:
(1)ASCII码:采用七位二进制数表示大小写字母、数字和专用符号
(2)汉字编码:输入编码、汉字内码、汉字字形码 -
校验:
(1)奇偶校验码:在原编码上加一个校验位,检验整个检验码中1的个数是否为奇数或偶数
(2)海明校验码:按某种规律分成若干组,每组安排一个校验位进行奇偶性测试,产生多位检测信息,并得出出错位置
(3)循环冗余校验码:在K位信息码后再拼接R位校验码,利用模2除法检验编码正确性
2.定点数 -
表示
(1)原码:用机器数的最高位表示符号,其他各位表示数的绝对值
(2)反码:正数与原码相同,负数除符号位外其余各位是原码的按位取反
(3)补码:正数与原码相同,负数是反码的末位加1
(4)移码:在真值X上加上一个常数,通常常数为2的n次幂 -
计算:分为移位、原码以及补码下的加减乘除
计算
汉明码
1.奇偶校验位为2的幂次位:0 1 2 4 8,其他七位为数据位
2.校验位与信息位的关系:
校验位下标x:信息位从x位开始,连续x个,空x个,再连续x个
2^k-1=m+k m:信息位 k:校验位
1.信息位1-12全部写成2的0,2,3,…k次方相加的形式
2.校验位下标1 2 4 8代表2的0 1 2 3次方
3.分组:根据第一步信息位的展开表达式,如果有与校验位下标一致的,就放在校验位分组中,如果没有与校验位一致的
4.偶校验就是保证分组中的1的个数为奇数
校验位的数据就是分组中其他数据异或的结果
循环冗余码
1.展开多项式得到crc除数
2.在原数据串末加0,多项式的最高阶数,就是要加0的个数得到被除数
3. 按位异或,当结果位数较小时,前面补零
校验和长度为除数位数-1
4.将校验和加在数据项之后,就是带有CRC校验的数据
直观运算
1) 除数10011为5位,则创建5个数据位。
2) 最左边1探测器,发现1时,右边两位反转器立即工作,然后等待下一个时钟进行移位;发现0时,右边两位反转器不工作,等待下一个时钟移位。
3) 原理解释:
0⊕1=1,0⊕0=0(与0异或不变);1⊕1=0,1⊕0=1(与1异或取反)。
只在右边后两位设置反转器,是因为除数多项式(10011)的后两位为11。
串行输入的数据串左边第一位/最高位为0,说明商为0,数据串只需要移位就可以(因为与0异或结果不变)。
串行输入的数据串左边第一位为1,说明商为1,说明此时需要进行异或运算,最高位异或的结果一定是0(1与除数10011的最高位1异或结果为0),所以不用管,移位移走就可以了;而除数10011的后两位为1,与数据串对应位异或的结果相当于取反。
4)如果除数是10111,则需要右边后三位设置反转器。