• 计算机基础知识


    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)

  • 相关阅读:
    Python-Basis-9th
    Python-Basis-8th
    Python-Basis-7th
    Ubuntu-Basis-4th
    Ubuntu-Basis-3rd
    Ubuntu-Basis-2nd
    Ubuntu-Basis-1st
    疯狂java第五章&&第六章-面向对象
    疯狂java第四章-流程控制与数组
    疯狂java第三章-数据类型和运算符
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4184018.html
Copyright © 2020-2023  润新知