计算机组成原理第二章之定点数的运算

一、定点数加减法运算

(在计算机中只要看到加减法运算,一定是利用补码进行运算)

当需要减去一个数X时,可以用加X对应的负数的补码【-X】来代替。

补码运算的基本规则:

1.运算的各个操作数均补码表示,运算结果仍是补码。

2.符号位与数值位一样参加运算。

补码的溢出检测:

1.两个同号的补码相加,结果的符号改变,说明溢出。两个异号的补码相加结果不会发生溢出。

2.双符号位法:当以双符号位补码运算,运算结果的二符号位相异时表示溢出,相同时表示没有溢出。溢出逻辑表达式为V=S1⊕S2

双符号位:用00或11代表符号位,如果结果变为01或10,说明有溢出,通过高位来判断结果的符号是正是负。01表示溢出,结果的符号为正,10表示溢出,结果的符号为负。

3.单符号位法:最高数值位和符号位都有进位或者都没有进位的时候就没有溢出,当其中有一个有进位另一个没有进位的时候就发生了溢出。溢出表达式为V=C1⊕C2。

 

 

二、原码的一位乘法

A=-0.1101,B=0.1011

A*B=-0.10001111

乘数的每一位乘被乘数,类似于十进制的乘法

乘法的符号位是单独处理的,同号为正,异号为负,也是类似于十进制的乘法。

乘法的改进:

变成加和右移的运算。A*B=A*0.1011=A*(0.1+0.00+0.001+0.0001)

                                             =0.1A+0.00A+0.001A+0.0001A

                                             =0.1A+0.00A+0.001(A+0.1A)

                                             =0.1A+0.01[0*A+0.1(A+0.1A)]

                                             =0.1{   A+0.1[0*A+0.1(A+0.1A)] }

在十进制中,0.1b=2^-1。

所以A*B=2^-1{ A+2^-1[0*A+2^-1(A+2^-1(A+0))] }

乘以2^-1表示右移一位。

一个明显的递推公式:

P‘i+1’=2^-1(P‘i’+A*B‘n-i’)

每一步的迭代过程如下:

  1. 取乘数的最低位Y‘n-i’判断。
  2. 若Y‘n-i’的值为1,则将上一步迭代部分积P‘i’与A相加,如果为0,则什么也不做。
  3. 右移一位,产生本次部分积P‘i+1’

 

 

至于除法会在下一篇中讲到。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值