浮点数尾数运算 < ---- > 原码加/减运算
原码:+|x| 或者 -|x| (正数=0+|x| 负数的=1+|x| )
符号位和数值部分:分开处理
仅对【数值部分】进行加减运算,符号位起判断和控制作用
规则如下:
•比较两数符号,对加法实行“同号求和,异号求差”,对减法实行“异号求和,同号求差”。
•求和:数值位相加,和的符号取被加数(被减数)的符号。若最高位产生进位,则结果溢出。
•求差:被加数(被减数)与加数(减数)求补相加。
a)最高数值位产生进位表明加法结果为正,所得数值位正确。
b)最高数值位没产生进位表明加法结果为负,得到的是数值位的补码形式,需对结果求补,还原为绝对值形式的数值位。
•差的符号位:a)情况下,符号位取被加数(被减数)的符号;
b)情况下,符号位为被加数(被减数)的符号取反。
举个栗子:~
例1:已知 [X]原 = 1.0011,[Y]原 = 1.1010,要求计算[X+Y]原
解:由原码加减运算规则知:同号相加,则求和,和的符号同被加数符号。
所以:和的数值位为:0011 + 1010 = 1101 (ALU中无符号数相加)
和的符号位为:1
[X+Y]原 = 1.1101