计算机运算时是如何判断发生溢出的?
我记得好像看过正数+正数=负数、负数+负数=正数的时候就发生了溢出!谁能解释一下计算机判断溢出的法则?!...
我记得好像看过 正数+正数=负数、负数+负数=正数 的时候就发生了溢出!
谁能解释一下计算机判断溢出的法则?! 展开
谁能解释一下计算机判断溢出的法则?! 展开
5个回答
展开全部
要通过计算机运算,就先的申请计算机内存,存储数据,申请的时候数据有数据类型,数字的话用int类型举例把,int在不同的语言中他占用的内存是不同的,就以c语言为例,是占用8个字节,在计算机中是以2进制表示(00000000 00000000)共8位(最高位是0代表正数,1则是负数);2个数相加就是2个16位的2进制相加,比如01000000 00000000(16384)+01000000 00000000(16384)=10000000 00000000 ;这就溢出了,因为最高位是符号位,1代表负数;大概是这样把,不知道有错的没,呵呵
展开全部
如果是有符号数加法,把运算结果最高位的进位和次高位向最高位的进位相异或,如果异或结果为一,则发生了溢出,如果为零,则没有溢出。如果是无符号加法,则看溢出标志位OV,如果OV为一,则发生了溢出,如果为零则没有溢出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
计算机运算时是如何判断发生溢出的?
-------
“计算机运算”,这里面有软件和硬件方面的判断层次。
硬件就是CPU。
CPU是大规模的集成电路,其中有个异或门。
它把运算结果最高位的进位和次高位向最高位的进位相异或,送到OF标志位。
软件则要根据OF的值来判断,OF=1则是溢出。
-------
“计算机运算”,这里面有软件和硬件方面的判断层次。
硬件就是CPU。
CPU是大规模的集成电路,其中有个异或门。
它把运算结果最高位的进位和次高位向最高位的进位相异或,送到OF标志位。
软件则要根据OF的值来判断,OF=1则是溢出。
追问
最高位是符号位,另一个哪来的?具体情况是怎么回事?
追答
最高位是符号位,另一个哪来的?
-- 一个是最高位的进位,即是符号位的进位;
--另一个是“次高位向最高位的进位”,即数值向符号位的进位。
具体情况是怎么回事?
--说来话长。请参考原码、反码、补码的概念,以及补码的运算等等。
--其实,这些楼主是应该懂得的,否则怎么就能问到“溢出的判断”的问题?
--再具体深入的说,就不是“计算机运算时是如何判断发生溢出的?”的问题了;
--而是:人,如何“判断溢出”的问题了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
坐而论道是真相
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询