对于分数求其原码,如:
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
今日推荐
周排行