计算机基础知识

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

255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1
 
0.625=(0.101)B
0.625*2=1.25======取出整数部分1
0.25*2=0.5========取出整数部分0
0.5*2=1==========取出整数部分1
十进制转二进制C++代码
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)

 

posted @ 2014-12-25 10:15  星辰之力  阅读(608)  评论(0编辑  收藏  举报