“21天好习惯“ 第一期--19
作者:互联网
2.4 基本运算方法
2.4.1 定点加减运算
在计算机中,带符号的数有原码、补码、反码等表示方法。原码加减和补码加减是一切运算的基础。但原码加减运算复杂,因为操作数取绝对值运算,实际操作并不仅仅取决于操作码,还与操作数的正负有关,并且可能对运算结果进行修正。补码加减运算则比较简单,因而在计算机中,基本采用补码加减法。
1.补码的加减运算
补码加减是指:两个操作数都用补码来表示,连同符号位一起运算,结果也用补码表示。
(1)运算规则
两个补码数的加减运算,其所依据的基本数学公式如下:
(X+Y)补=X补+Y补
(X -Y)补=X补+(-Y)补
(2)溢出的判断逻辑
如果想获得更高的计算精度,可采取双倍字长运算,先做低位字运算,再做高位字运算。低位字运算的进位值可保留,作为高位字运算时的初始进位值,使两次运算能够衔接。因数据字长是固定的,运算结果有可能会超过数据字长的表示范围,符号位和各数值位的进位可能会使数符或真值出现异常从而使运算结果发生溢出。
补码加减运算中,当同号相加或异号相减时,运算结果的绝对值将增大。若该值超出了机器数的表示范围,则称为溢出,通过标志位OF指示。两个正数相加而绝对值超出允许的表示范围,称为正溢。两个负数相加而绝对值超出允许的表示范围,称为负溢。一旦发生溢出,溢出的部分将被丢失,留下来的结果将不正确。如果只有一个符号位,溢出将使结果的符号位产生错乱。因此,计算机应设置溢出判断逻辑,如果产生溢出,将停机并显示“溢出”符号标志OF;或者通过溢出处理程序,自动修改比例因子,然后重新运算。
2.原码的加减运算
与补码加减法不一样,定点数的原码加减法的基本原则是:先对数值位进行加减,再单独处理符号位,具体运算操作如下:
加法:被加数与加数符号相同,则数值位求和;被加数与加数符号相反,则数值位求差。
减法:被减数与减数符号相反,则数值位求和;被减数与减数符号相同,则数值位求差。
①在对数值位进行求和时,把数值为直接相加,且求和结果的符号取被加数或者被减数的符号。如果最高位有进位产生,则运算结果发生了溢出。
②在对数值位进行求差时,把被加数(被减数)与加数(减数)变补后相加。最高数值位可能产生进位,也可能不产生进位,应分别进行处理:
有进位:求差结果即为真值,且最终结果的符号取为与被加数(被减数)相同;
无进位:还需再对求差结果进行求补以转换成最终结果的绝对值,且运算结果的符号取为与被加数(被减数)符号相反。
3.标准移码的加减运算
标准移码的定义为:
X移=X+2n-1
其中,X为真值,n为码字位数。把真值正向偏移形成的移码,其已不再具有显式的符号位,因此在进行加减运算时,不再单独处理被隐含的符号位。
标签:天好,21,符号,--,补码,加减,进位,溢出,运算 来源: https://blog.csdn.net/weixin_52290223/article/details/121246068