计算机组成原理(一)补码反码的加减运算和溢出

对于分数求其原码,如:

9/64=0.001 001    如果题目中表示,该机器的数字长为8位,则在后面加0,同时看清有无符号位!

2^6=64,9的二进制编码为:1001。9/64=9/(2^6)     即小数点向前移动6位

若分子大于16,如:19/32=(16/32+3/32)=0.10011

补码的加法运算:
   补码加法的特点:
   符号位作为数的一部分参加运算,符号位的进位丢掉。
   运算结果为补码形式
整数  [A]补 + [B]补= [A+B]补    (mod 2n+1)
小数  [A]补 + [B]补= [A+B]补    (mod 2)
补码的减法运算:
    因为 A–B= A+(–B ),所以有补码减法:
整数  [A – B]补= [A+(–B )]补= [A]补 + [ – B]补   (mod 2n+1)
小数  [A – B]补= [A+(–B )]补= [A]补 + [ – B]补   (mod 2)
       从[Y]补求[-Y]补的法则是:
       对[Y]补包括符号位“求反且最末位加1” 

反码的加法运算:

   两个反码进行加运算,然后将进位数拿掉,用此数加上进位的那个数,如:

         [X]反=0.1011    [Y]反=1.1010
          [X]反   0.1011
      +  [Y]反 1.1010              
                  10.0101
  +循环进位           1
   [X+Y]反    0.0110

     所以,x+y=0.0110

反码的减法运算:

  两个反码表示的数相减,类似于补码减法,将减数变符号,并根据变号后的减数取反,按反码加法进行。

溢出检测:

   可能产生的溢出检测:

        两正数加,变负数,上溢(大于机器所能表示的最大数)

        两负数加,变正数,下溢(小于机器所能表示的最小数)

猜你喜欢

转载自www.cnblogs.com/SL668/p/10907988.html