机器数的运算

机器数的运算_第1张图片

一. 定点数运算

1. 机器数的加减运算

    在计算机中,通常只设置加法器,减法运算要转化为加法运算来实现。

 机器数的加减运算一般用补码来实现.   其运算方法如下:

    X+Y -> [X]补码+[Y]补码   

    X-Y ->[X]补码-[Y]补码

eg :  8-6(采用8位定点整数)

 8-6  ->   [8]补码+[-6]补码   ->[0000 1000]补码+[1000 0110]补码  -> 0000 1000 +1111 1010 =      1 0000 0010

 运算结果后的8位的真值是 +2 ,  

溢出:   运算结果超过了字长的表示范围时,则产生了溢出

    计算机运算溢出检测机制,采用双符号位,00表示正号,11表示负号。如果进位将会导致符号位不一致,从而检测出溢出。结果的符号位为01时,称为上溢;为10时,称为下溢。

典型案例

设x=127,y=5,字长8位 , 计算x+y

[x]补+[y]补=00111   1111 + 

                   00000  0101=

                   01000 0100         01代表溢出

     (1000 0100)补码  =>        (1111 1100) 原码  => - (64+32+16+8+4) = -124

 

机器数的运算_第2张图片

 

 

在确定了运算的字长和数据的表示方法后,数据的范围也就确定了。一旦运算结果超出所能表示的数据范围,就会发生溢出。发生溢出时,运算结果肯定是错误的。当两个同符号的数相加(或者是相异符号数相减)时,运算结果有可能产生溢出。常用的溢出检测机制主要有进位判决法双符号位判决法。双符号位判决法若采用两位表示符号,即00表示正号、11表示负号,则溢出时两个符号位就不一致了,从而可以判定发生了溢出。

2. 机器数的乘除运算

   >纯软件方案

  >通过增加少量的来实现左右移位的逻辑电路来实现

  >通过专用的硬件阵列乘法器(除法器)来实现

二.  浮点运算 

      1. 浮点数加减运算

              浮点数加减法有五个基本步骤: 对阶(小阶向大阶看齐,尾数向右移),尾数加减,规格化, 舍入和检查

       2.浮点数乘除运算

           浮点数相乘, 阶码相加,尾数相乘, 数符异或运算求出

         浮点数相除, 阶码相减, 尾数相除,  数符异或运算求出

你可能感兴趣的:(计算机组成原理)