[计算机组成原理] 定点数的四则运算

定点数的移位运算

算数移位

 码值填补代码
正数原码、补码、反码0
负数原码0
补码左移补0
右移补1
反码1

 

  • 负数的原码数值部分与真值相同,故在移位时只要使符号位不变,其余空位补0。
  • 负数的反码各位除符号位外与负数的原码相反,故移位之后所添加的代码也应与原码相反,即补1。

逻辑移位

  • 逻辑移位将操作数当做无符号数看待,移位规则:逻辑左移,高位丢掉,低位补0;逻辑右移,低位丢掉,高位补0。

定点数加减法

原码定点数加减法

加法规则:先判断符号位,如果相同,绝对值相加,结果符号位不变;若不同,则做减法,绝对值大的减去绝对值小的,符号位是绝对值大的。

减法规则:将减数符号位取反,然后将被减数与符号位取反后的减数进行原码加法运算。就是减去一个数相当于加上这个数的相反数。

补码定点数加减法

  • 参与运算的两个数都用补码表示。
  • 按二进制运算规则运算,逢二进一。
  • 符号位与数值位按照同样规则一起参与运算,符号位产生的进位要丢掉,结果的符号位由运算得出。
  • 若做加法,则两数的补码直接相加;若做减法,被减数的补码和减数的机器负数的补码相加。

溢出的判断

溢出是指运算结果超过了数的表示范围,仅当两个符号相同的数相加,或者两个负号相异的数相减才可能产生溢出,如两个正数相加,结果的负号位为1;一个负数减去一个正数,符号位为0,这些都溢出了,运算结果是错误的。

检测溢出有三种方式:

  • 一位符号位:两个数符号相同,结果又与原操作数符号不同,则结果溢出。
  • 双符号位:双符号位不同则溢出,双符号位相同则不溢出。
  • 符号位和最高数值位的进位:如果符号位和最高数值位都有进位或者都没有进位,则不溢出,否则溢出。

乘法运算

除法运算

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值