≤计算机组成原理》第二章小结
第二章 数据编码和数据运算
一、数值范围
1、定点数:
n+1位整数可表示的数值范围是0≤x≤2n+1-1
n+1位小数可表示的数值范围是0≤x≤1-2-n
2、原码表示法:
n+1位整数原码可表示的数值范围是-2n+1≤x≤2n-1
n+1位小数原码可表示的数值范围是-1+2-n≤x≤1-2-n
3、补码表示法:
n+1位整数补码可表示的数值范围是-2n≤x≤2n-1
n+1位小数补码可表示的数值范围是-1≤x≤1-2-n
4、反码表示法:
n+1位整数反码可表示的数值范围是-2n+1≤x≤2n-1
n+1位小数反码可表示的数值范围是-1+2-n≤x≤1-2-n
5、移码表示法:
n+1位整数移码可表示的数值范围是-2n≤x≤2n-1
二、浮点数的编码
N=(-1)S*M*RE
浮点数
符号位
阶码
尾数
总位数
短实型(单精度数)
1
8
23
32
长实型(双精度数)
1
11
52
64
临时实数
1
15
64
80
三、算术运算
1、原码一位乘法:
(1) 如果yn=1,部分积加x,右移一位;
(2) 如果yn=0,部分积加0,右移一位;
重复n步,第n+1步为右移一位.
2、补码一位乘法:
(1) 如果yn=yn+1,部分积加0,右移一位;
(2) 如果ynyn+1=01,部分积加[x]补,右移一位;
(3) 如果ynyn+1=10,部分积加[-x]补,右移一位;
重复n+1步,最后一步不移位.
3、原码一位除法(加减交替法/不恢复余数法):
(1) 如果余数为正,商上"1",余数左移一位,下次减除数;
(2) 如果余数为负,商上"0",余数左移一位,下次加除数;
重复n+1步,最后一步不移位.
4、补码一位除法(加减交替法):
(1) 被除数与除数同号,被除数减去除数;
被除数与除数异号,被除数加上除数;
(2) 余数与除数同号,商上"1",余数左移一位,下次减除数;
余数与除数异号,商上"0",余数左移一位,下次加除数;
重复(2),做n+1步.
四、逻辑运算
1、算术移位
当乘数或除数是2n时,算术移位用来快速地完成对整数进行乘法或除法的运算。算数左移n位相当于乘上2n,执行方法是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补0。算术右移,最高位(符号位)保持不变。
2、逻辑移位
逻辑左移n位的执行方法,是把原来的数中每一位都向左移动n个位置,左面移出的高位丢弃不要,右面低位空出的位置上全部补"0"。
逻辑右移n位的执行方法是把原来数中的每一位都向右移动n个位置,右面移出的低位丢弃不要,左面高位空出的位置上全部补0。
3、循环移位
循环移位是一种逻辑操作,它仅仅移动操作数中二进位信息的位置,不会丢弃任何一位信息。循环左移n位是把原来的数中每一位都向左移动n个位置,左面移出的高位放到右面低位空出的位置上;循环右移n位则把原来数中的每一位都向右移动n个位置,右面移出的低位放到左面高位空出的位置上。
五、BCD码(Binary-Coded Decimal, 二进制编码的十进制数)
为了便于计算机直接使用十进制数,
产生了BCD码(二进制编码的十进制数)。BCD码中用四位二进制数表示一位十进制数,
这四位二进制数通常用8421编码方式,
其中的四位二进制数0000--1001表示十进制数的0--9,
其余的四位二进制数1010--1111( 即十六进制数的A--F)不用。
如:
0的BCD码为0000
9的BCD码为1001
20的BCD码为0010 0000
248的BCD码为0010 0100 1000
六、真值
正数原码的真值等于其数值位,即+101
正数补码的真值等于其数值位,即+111
负数原码的真值等于数值位前加一个负号,即-101
负数补码的真值可通过对它再进行一次求补得到。
如10111,求补结果为01001,再加上负号,得-1001
两个疑问:
1、将下列十进制数用压缩的十数串形式进行编码。
(1)67453
(2)+67453
(3)-67453
//什么是压缩的十数串形式?
2、以BCD码表示十进制数目000-999之间的每一组码,其末端包含一个奇校验位,检测下面每一组码,其中第___________组码有两个错误发生?
A、1001 0101 10000
B、0100 0110 1100
C、0111 1100 00011
D、1000 0110 00101