cpu功能:程序控制,操作控制,时间控制,数据处理。
cpu组成:运算器(ALU,AC,DR{数据缓存寄存器}),状态条件寄存器(psw),控制器(指令寄存器(IR),地址寄存器(AR),指令译码器(ID))
(0正1负)
原码是其本身
正数的反码与原码相同,负数的反码是其绝对值按位取反。
正数的补码与其原码相同,负数的补码则等于其反码的末尾加1。
在偏移2^n-1,只要将补码的符号位取反便可得到相应的移码。
浮点数:阶符,阶码,数符,尾数
尾数用补码表示时:范围([0.5,1],[-1,-0.5]),0,1皆可。
最大正数:+(1-2^(-M+1))*2^(2^(R-1)-1)
最小正数:-1*2(2^(R-1)-1)
IEEE754
voidDtoB(intd)
{
if
(d/2)
DtoB(d/2);
cout<<d%2;
}
点运算器与浮点数运算
浮点运算器通常由 处理阶码的 和处理尾数的 两个定点运算器组成
在早期的小或微型机中,浮点运算器通常以 任选件方式提供给用户 , 主要用于计算浮点数
浮点数加减运算
对阶 执行加减 规格化 舍入 (右归)判溢出
浮点数乘除运算
阶码加减 尾数乘除 舍入与规格化处理 判溢出
浮点数在计算机内的格式
浮点数在计算机内的格式
浮点数在计算机内的格式
浮点数在计算机内的格式
浮点数格式:关于移码的知识
浮点数格式:关于移码的知识
浮点数在计算机内的格式
浮点数算术运算
(1)对阶操作,求阶差: ?E= EX -EY,
使阶码小的数的尾数右移??E?位,
其阶码取大的阶码值;
(2)尾数加减;
(3)规格化处理;
(4)舍入操作,可能带来又一次规格化;
(5)判结果的正确性,即检查阶码上下溢出
浮点数加运算举例
X=2010*0.11011011, Y=2100*(-0.10101100)
写出X、Y的正确的浮点数表示:
阶码用 4 位移码 尾数用 9 位原码
(含符号位) (含符号位 )
[X]浮 = 0 1010 11011011
[Y]浮 = 1 1100 10101100
为运算方便,尾数写成模 4 补码形式:
[MX]补= 00 11011011
[MY]补= 11 01010100
浮点数加运算举例
X=2010*0.11011011, Y=2100*(-0.10101100)
(1)计算阶差:
?E = EX -EY= EX +(-EY) = 1 010 + 0 100 = 0 110
注意:阶码计算结果的符号位在此变了一次反,结果为 -2 的 移码,是X的阶码值小,使其取 Y 的阶码值1100(即 +4);
因此,修改 [MX]补 =00 0011011011(即右移 2 位)
(2)尾数求和:00 0011011011
+ 11 01010100
11 1000101011
浮点数加运算举例
X=2010*0.11011011, Y=2100*(-0.10101100)
(3)规格化处理:
相加结果的符号位与数值的最高位同值,应执行一次左规操作,故得 [MX]补 = 1 000101011,[EX]移 = 1 011
(4)舍入处理:采用 0 舍 1 入方案,要入,在最低位加 1
11 00010101
+ 00 00000001
11 00010110 (其原码表示为 1 11101010)
(5)检查溢出否:和的阶码为 1011,不溢出
计算后的 [X]移 = 1 1011 11101010 ,即 23*(-0.11101010)
浮点数算术运算
(1) 阶码加、减:乘:EX+EY ,除:EX- EY
(2) 尾数乘、除:乘:EX*EY , 除:EX / EY
(3) 规格化处理;
(4) 舍入操作,可能带来又一次规格化;
(5) 判结果的正确性,即检查阶码上下溢出
浮点数乘法运算举例
X=2010*0.1011, Y=2100*(-0.1101)
写出X、Y的正确的浮点数表示:
阶码用 4 位移码 尾数用 9 位原码
(含符号位) (含符号位 )
[X]浮 = 0 1010 1011
[Y]浮 = 1 1100 1101
浮点数乘运算举例
X=2010*0.1011, Y=2100*(-0.1101)
(1)阶码相加:
积的阶码 = EX + EY = 1 010 + 1 100 = 1 110
注意:计算结果的阶码符号位在此变了一次反,
结果为 +6 的 移码
(2)尾数相乘:MX*MY = 0.1011*(-0.1101)
= -0.10001111
(3) (4) (5) 已是规格化数, 不必舍入, 也不溢出
最众乘积 [MX]移 = 1 1110 10001111,
即 26 * (-0.10001111)
浮点数除运算举例
X=2010*0.1011, Y=2100*(-0.1101)
(1)阶码相减:
积的阶码 = EX - EY = EX + (-EY)
= 1 010 + 0 100 = 0 110
注意:计算结果的阶码符号位在此变了一次反,为移码 -2
(2)尾数相除:MX/MY = 0.1011/(-0.1101)
= -0.1101
(3) (4) (5) 已是规格化数, 不必舍入, 也不溢出
最众的商 [MX]移 = 1 0110 1101,
即 2-2 *(-0.1101)