美文网首页
溢出判断 基本运算方法

溢出判断 基本运算方法

作者: Rumbles | 来源:发表于2018-03-01 17:31 被阅读137次

符号位也要参加运算
减法:那就是进行变补运算 然后进行加法运算

溢出判断:
溢出情况发生在什么时候呢? 符号位相等的时候才会溢出  两个正数相加或者两个负数相加


硬件判断逻辑一:

Sa Sb Sf  表示的关系:  数A + 数B  即表示 Sa Sb  结果符号位Sf  符号位进位Cf 尾数最高位进位 C

也就是 两个正数 或两个负数 相加之后符号位变化  那么 就表示溢出

硬件判断逻辑二:
数据高位进位,符号位进位未进位,溢出。
数据位高位未进位,符号位进位,溢出。
数据位高位进位,符号位进位,不溢出。
数据位高位未进位,符号位未进位,不溢出。

硬件判断逻辑三:双符号位 
这便是用11,00分别作为负数,正数且未溢出的标识,10,01则分别是负数和正数的溢出。

补码的相加减


1、补码加减的基本公式

补码加法的基本公式为:

整数 [A]补+[B]补=[A+B]补 (mod 2n+1)

小数 [A]补+[B]补=[A+B]补 (mod 2)

对于减法:

因A-B=A+(-B),则[A-B]补=[A+(-B)]补,由补码加法基本公式可得:

整数 [A-B]补=[A]补+[-B]补 (mod 2n+1)

小数 [A-B]补=[A]补+[-B]补 (mod 2)

[X+Y]补= [X]补+[Y]补         [X-Y]补= [X]补+[-Y]补 

原码的相加减

符号位单独处理  数值位加减 
求和时和的符号取被加数或者被减数的符号(前面的数是被减数被加数)
如果数值位产生进位那么表示结果溢出

1 0011 + 1 1100     符号位为 1  1111

减  被减数+减数的补码 
-3- -12 = 9   1 0011 - 1 1100  符号位单独计算   0011 - 1100 = 0011 + (1100)补= 0011 + 0100 = 0111 

最高位无进位  得到数值为的补码  需要对结果求补 = 1001 =9 符号位与被减数相反 为+ == 9


最高位有进位 数值位正确  符号取被减数的符号 前面的符号

标准移码的相加减
两个数的移码的相加减 == 两个数相加减的补码

相关文章

  • 溢出判断 基本运算方法

    符号位也要参加运算减法:那就是进行变补运算 然后进行加法运算 补码的相加减 原码的相加减 标准移码的相加减两个数的...

  • 判断整型运算是否溢出

    加法溢出: 无符号整数溢出判断较简单 有符号整数溢出的时候只存在正溢出和负溢出两种情况,即两正数相加得到一个负数或...

  • swift运算符

    溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢出运算符(&+、&-、&*),用来支持...

  • python 判断奇偶数的三种方法,最后一种90%的人没见过。

    判断num是否为整数,num为整数。 方法一 使用% 方法二 优化方法一 方法三(推荐) 使用&位运算符,运算速度...

  • Swift 高级运算符 ⑬

    1. 溢出运算符 Swift 的算数运算符出现溢出时,会抛出运行时错误 Swift 有溢出运算符(&+、&-、&*...

  • 17-Swift高级运算符

    1.溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误 Swift有溢出运算符(&+、&-、&*),用来...

  • 高级运算符

    溢出运算符 Swift的算数运算符出现溢出时会抛出运行时错误Swift有溢出运算符(&+、&-、&*),用来支持溢...

  • 运算溢出

    计算机运算时采用双符号位表示符号正好为00,负号为11如果经过了移码和加减法运算后出现双符号位为10则称为下溢出双...

  • Advanced Operators

    高级运算符。不同于C,swfit中的运算符默认是不可溢出的,溢出会报错。你可以使用&加运算符表示可溢出运算符。 按...

  • 第五章运算符和流程控制(一天[1 - 4 章])

    一、运算符 1. 基本算术运算符 2. 值判断 3. 逻辑判断和成员判断 4. 一切都是假象 5. 链式判断 二、...

网友评论

      本文标题:溢出判断 基本运算方法

      本文链接:https://www.haomeiwen.com/subject/cqzgxftx.html