溢出判断
来源:互联网 发布:wpf数据绑定视频 编辑:程序博客网 时间:2024/05/22 22:41
补码加法运算溢出判断三种方法:[方法一]Xf、Yf分别两个数的符号位,Zf为运算结果符号位。当Xf =Yf =0(两数同为正),而Zf=1(结果为负)时,负溢出;当出现Xf =Yf =1(两数同为负),而Zf=0(结果为正),正溢出.[方法二]Cs表示符号位的进位,Cp表示最高数值位进位,⊕表示异或。若 Cs⊕Cp =0 ,无溢出;若 Cs⊕Cp =1 ,有溢出。[方法三]用变形补码进行双符号位运算(正数符为00,负数符号以11)若运算结果的符号位为"01",则正溢;若结果双符号为10,则负溢出;若结果的双符号位为00或11,无溢出。
所谓双符号位判决法是指:
计算机运算溢出检测机制,采用双符号位,00表示正号,11表示负号。如果进位将会导致符号位不一致,从而检测出溢出。结果的符号位为01时,称为上溢;为10时,称为下溢。例如设X = + 1000001,Y = + 1000011,采用双符号为表示X=00 1000001,Y=00 1000011,[X + Y]补=01 0000100,实际上,运算结果产生了正溢出。
设x=0.1101,y=-0.0111,符号位为双符号位 ,用补码求x+y,x-y [x]补+[y]补=00 1101+11 1001=00 0110 [x-y]补=[x]补+[-y]补=00 1101+00 0111=01 0100 结果错误,正溢出
在确定了运算的字长和数据的表示方法后,数据的范围也就确定了。一旦运算结果超出所能表示的数据范围,就会发生溢出。发生溢出时,运算结果肯定是错误的。当两个同符号的数相加(或者是相异符号数相减)时,运算结果有可能产生溢出。常用的溢出检测机制主要有进位判决法和双符号位判决法。双符号位判决法若采用两位表示符号,即00表示正号、11表示负号,则溢出时两个符号位就不一致了,从而可以判定发生了溢出。
0 0
- 溢出判断
- 判断溢出
- 溢出判断
- C语言溢出判断
- 溢出的判断之一
- 汇编 溢出的判断
- 判断是否溢出
- 溢出的判断之一 .
- 整数相加溢出判断
- 判断整数溢出
- java判断是否溢出
- 判断int是否溢出
- 整数溢出,如何判断整数溢出
- 整数溢出,如何判断整数溢出
- 整数溢出,如何判断整数溢出
- 整数溢出,如何判断整数溢出
- (未完)四则运算溢出判断
- UCOS2如何判断堆栈溢出
- 如何判断一个txt文件的编码格式
- 数据结构与算法习题汇总(4)
- 刨根问底Objective-C Runtime(4)- 成员变量与属性
- c++使用rapidxml
- 面向结构化编程与面向对象编程
- 溢出判断
- Bootstrap(四) 菜单、按钮及导航
- Android 中的 Service 全面总结
- 黑幕背后的__block修饰符
- easyui和highcharts 动态加载数据和X轴数据
- 为Docker容器设置固定IP实现网络联通(3)——如何节省IP资源防止主机网络广播风暴
- OTA1-android 升级基本原理
- Linux Screen 超简单用法
- itext使用模板生成pdf文件