1、原码加减:
符号位单独处理,数值为加减。
先比较两数符号:
加法:同号数值求和,异号求差, 求和:3原+2原, 求差:3原+【-2】原
减法:异号数值求和,同号求差。求和:3原-【-2】原, 求差:3原-2原
求和时:数值位相加,和的符号取被加数(被减数)符号
若最高位产生进位,则结果有溢出
求差时:被加数(被减数)与加数(减数)求补后相加
最高位数值有进位,相加结果为正,数值为正确,符号取被加数(被减数)符号;
最高位数值无进位,相加结果为负,得到数值位的补码,需对结果求补还原位绝对值形式的数值位,符号位与被加数(被减数)的符号相反。
例:已知【X】原=1.0011,【Y】原=1.1010,计算【X+Y】原。
解:
同号相加,则求和,和的符号同被加数符号。
和的数值位为:0011+1010=1101
和的符号位为:1
【X+Y】原=1.1101
例:已知【X】原=1.0011,【Y】原=1.1010,计算【X-Y】原。
解:
同号相减,则数值位求差。
差的数值位为:0011+(1010)求补=0011+0110=1001
最高数值位无进位,表明加法结果为负,需对1001求补,还原绝对值形式的数值位,即:(1001)求补=0111
差的符号位为【X】原的符号位相反,即:
【X-Y】原=0.0111
2、补码加减
【X+Y】补=X补+Y补
【X-Y】补=X补+【-Y】补
数学依据:
【X+Y】补=X+Y+2^n =
X+Y+ 2^n + 2^n=【X】补+【Y】补
【X-Y】补=X-Y+2^n =
X-Y+ 2^n + 2^n=【X】补+【-Y】补
全过程以2^n 为模,即除以 2^n 后再取余数,
其中,【-Y】补=【Y补】求补
例:求【X+Y】补:
(1)X=3 Y=2
【X】补+【Y】补=0 0011+0 0010=0 0101 (+5)补
(2)X=-3 Y=-2
【X】补+【Y】补=1 1101


2452

被折叠的 条评论
为什么被折叠?



