【计算机组成原理】定点加减法运算

简介: 一、补码加减法的运算方法1. 补码加法 2. 补码减法 二、溢出及检测 1. 溢出的概念 2. 溢出的检测

一、补码加减法的运算方法

1. 补码加法

补码加法的运算:[x]补+[y]补=[x+y]补

例1:设x=0.1010,y=0.0101,求 [x]补+[y]补 。

先将真值x和y转换成由补码数据表示:

x[补]=0.1010,y[补]=0.0101

利用补码加法公式可得:

   [x]补     0.1010

 +[y]补     0.0101 

[x+y]补 0.1111

所以:x[补]+[y]补=0.1111

例2:设x= -0.1010,y= -0.0100,求 [x+y]补 和 x+y 。

先将真值x和y转换成由补码数据表示:

[x]补=1.0110,[y]补=1.1100

利用补码的加法公式可得:

   [x]补     1.0110

 +[y]补     1.1100 

[x+y]补 11.0010

符号位进位的值为模数,应该舍弃,所以:[x+y]补=1.0010,x+y= -0.1110

2. 补码减法

补码减法运算公式:[x-y]补=[x]补+[-y]补=[x]补-[y]补

例3:设x=0.1001,y=0.0110,求 [x]补-[y]补 。

[x]补=0.1001,[y]补=0.0110,[-y]补=1.1010

   [x]补     0.1001

+ [-y]补    1.1010

[x-y]补 10.0011

符号位进位的值为模数,应该舍去,所以:[x]补-[y]补=0.0011

例4:设x= -0.1001,y= -0.0110,求 [x]补-[y]补 和 x-y 。

[x]补=1.0111,[y]补=1.1010,[-y]补=0.0110

   [x]补     1.0111

+ [-y]补    0.0110

[x-y]补 1.1101

所以:[x]补-[y]补=1.1101,x-y= -0.0011

二、溢出及检测

1. 溢出的概念

我们通过两个实例来观察溢出的现象:

(1)设[x]补=0.1011、[y]补=0.1100,求[x]补+[y]补。

(2)设[x]补=1.0101、[y]补=1.0100,求[x]补+[y]补。

对于(1):两个正数相加,运算结果是负数,显然是错误的

   [x]补     0.1011

+ [y]补     0.1100

[x+y]补 1.0111

对于(2):运算结果舍去了模数,两个负数相加结果成了正数,运算结果同样是错误的

   [x]补     1.0101

+ [y]补     1.0100

[x-y]补 10.1001

由于计算机字长是确定的,能表示的数据范围也是有限的,溢出现象不可避免。而溢出很有可能导致有效数字丢失或直接导致错误的运算结果,因此,计算机系统设计者必须解决溢出的判断问题,以便溢出发生时计算机能做出相应的处理。

2. 溢出的检测

主要利用变形补码的符号位进行检测:

变形补码即用两个二进制位来进行数据的符号表示。正数的符号以“00”表示,负数的符号以“11”表示。一般称左边的符号位为第1符号位,右边的符号位为第2符号位,第1符号位永远代表正确的符号位。补码加减法的运算公式对变形补码仍然成立,若运算结果的符号位为“01”或“10”,则分别表明发生了正上溢和负上溢。

例1:设[x]补=00.1011,[y]补=00.0111,求[x]补+[y]补。

   [x]补   00.1011

+ [y]补   00.0111

[x-y]补 01.0010

运算结果的符号位为“01”,第1符号位代表正确符号位,运算发生了上溢

例2:设[x]补=11.0101,[y]补=11.0011,求[x]补+[y]补。

   [x]补   11.0101

+ [y]补   11.0011

[x-y]补 10.1000

运算结果的符号位为“10”,第1符号位代表正确符号位,运算发生了下溢

例2:设[x]补=00.1011,[y]补=11.0011,求[x]补+[y]补。

   [x]补   00.1011

+ [y]补   11.0011

[x-y]补 11.1110

运算结果的符号位为“11”,运算未发生溢出

由此可见,当运算结果的双符号位相同时无溢出,相异时溢出。

不论是否溢出,第1符号位永远与真实的符号位一致。

目录
相关文章
|
11月前
【408计算机组成原理】—原码的乘法运算(九)
【408计算机组成原理】—原码的乘法运算(九)
|
11月前
|
存储
【408计算机组成原理】—加减运算和溢出判断(八)
【408计算机组成原理】—加减运算和溢出判断(八)
计算机组成原理——浮点数加减运算&强制类型转换
计算机组成原理——浮点数加减运算&强制类型转换
823 0
计算机组成原理——浮点数加减运算&强制类型转换
408计算机组成原理学习笔记——浮点数的表示和运算
408计算机组成原理学习笔记——浮点数的表示和运算
1035 1
408计算机组成原理学习笔记——浮点数的表示和运算
409计算机组成原理学习笔记——运算方法和运算电路(二)
409计算机组成原理学习笔记——运算方法和运算电路(二)
371 1
409计算机组成原理学习笔记——运算方法和运算电路(二)
|
存储
410计算机组成原理学习笔记——运算方法和运算电路(三)
410计算机组成原理学习笔记——运算方法和运算电路(三)
541 1
410计算机组成原理学习笔记——运算方法和运算电路(三)
|
存储
410计算机组成原理学习笔记——运算方法和运算电路(四)
410计算机组成原理学习笔记——运算方法和运算电路
194 1
410计算机组成原理学习笔记——运算方法和运算电路(四)
408计算机组成原理学习笔记——运算方法和运算电路(一)
408计算机组成原理学习笔记——运算方法和运算电路
359 1
408计算机组成原理学习笔记——运算方法和运算电路(一)
计算机组成原理<三>——数据的表示和运算(上)
计算机组成原理<三>——数据的表示和运算(上)
计算机组成原理<三>——数据的表示和运算(上)