计算机组成原理之运算器

运算器

数据的表示方式

        在计算机中数据的表示形式是使用0或1字符串来表示,数据要存储在计算机中需要按特定的规则进行变化,其中存储在计算机中的数值按指定的01格式表示的数据被称为机器码。计算机中常使用的码制有原、反、补、移码。

原码:真值加上符号位

反码:原码除符号位其余各个位求反(为了更加简单的得到补码)

补码:原码进行模运算之后是补码,但求补码的常用形式是反码某位加1

移码:在本书中八位移码表示是在原码的基础上再加127得到的结果(得到的结果没有负值)


各种码制的优缺点比较:

原码->优点:与真值最接近,简单易懂;缺点:使用原码计算比较复杂。

补码->优点:计算比较方便;缺点:补码不易得到。

反码->优点:反码容易得到作为原码到补码的中间过渡;缺点:对直接运算没有帮助

移码->优点:方便比较大小;缺点:对直接运算没有帮助


定点数运算

定点数的加、减法运算(主要使用【补码】来进行操作)

补码加法公式:[x]+ [y] = [x+y]

       ->在计算的过程中,符号位也参数运算,计算的结果含有符号位(发生溢出,不做处理


补码减法公式:[x]- [y][x]+ [-y]= [x-y]  (将减法变成加法进行运算)

       ->快速得到 :[-y]~[y]+1

([]包括符号位求反且最末位加1”,即可得到[])


 

在计算中时常会出现计算结果溢出的情况,需要对溢出进行判断:

溢出的判断方式:

->无符号数:判断最高位是否有进位

->有符号数:

-》进位判别法:判断符号位和最高数据位的进位是否一致(同进表示无溢出

-》双符号位法:将符号位扩展位为两位(00/11),计算之后看其结果(01:上溢;10:下溢;00/11:没有发生溢出

定点乘法运算:

1)原码并行乘法:

运算规则:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。


2)间接的补码乘法运算:

运算规则:先将需要运算的数值由补码转化为原码,

再利用原码的并行乘法进行计算,

最后要将结果转为补码的表示形式

3)直接补码并行乘法:

定点数除法运算:

原码除法原理:商的符号位由两数的符号位按异或运算得到,而商的数值部分则是两个正数相除之商。

浮点数运算

浮点数加减法运算需要六个步骤:

->0操作数检查

       检查两个操作数,是否有一个操作数为0

->比较阶码大小并完成对阶

       使两操作数的阶码相同(小阶向大阶看齐)

->尾数求和运算

       尾数进行加减运算,(使用双符号位)

->结果规格化

       保证结果再0.5~1之间(尾数的符号位和最高数据位必须相异

       向左规格化:(00/11 向右规格化:(01/10)注意阶码也应相应的移动

->舍入处理

       常见的有两种舍入方法:01入法、恒1

->判断结果是否溢出

       使用双符号位法进行溢出校验

以浮点数加减法为例:







运算器

运算器的功能:

->算术运算

->逻辑运算

->直送功能



附:文中图片截取自胡老师的授课PPT中

猜你喜欢

转载自blog.csdn.net/qq_38768365/article/details/81052186