首页 > 移动平台 > 详细

CSAPP 读书笔记 - 2.31练习题

时间:2014-04-30 17:07:22      阅读:870      评论:0      收藏:0      [点我收藏+]

bubuko.com,布布扣

 

根据等式(2-14)

bubuko.com,布布扣

假如w = 4 数值范围在-8 ~ 7之间 2^w = 16

 

x = 5, y = 4的情况下面

x + y = 9 >=2 ^(w-1)  属于第一种情况

sum = x + y = 9- 2^w  = –7

sum – x == y?

-7 – 4 = – 11 属于第三种情况 负溢出

sum – x  = –7 - 4= –11 + 2^w = 5  = y?

明显是等于的

同样

sum- y = x ?

-7 – 5 = –12 + 2^w = 4 = x?

所以溢出的情况下面根本判断不到。

 

 

判断有没有溢出的情况 就判断有没有正溢出和负溢出

怎么判断?

x + y >= 2 ^ (w-1) 正溢出

0 + x + y >= 2^(w-1)

0 >= 2^(w-1) – x – y 成立就是正溢出了

 

0 + x + y < - 2 ^ (w-1) 负溢出

0 < –2^(w-1) – x – y 成立就是负溢出了

 

所以我的答案是:

bubuko.com,布布扣
if  (0 >= 2^(w-1) – x – y) || (0 < –2^(w-1) – x – y)
{
   result = 0
} else
{
   result = 1
}
bubuko.com,布布扣

 

没有C环境不知道行不行, 如有不对请求指出

CSAPP 读书笔记 - 2.31练习题,布布扣,bubuko.com

CSAPP 读书笔记 - 2.31练习题

原文:http://www.cnblogs.com/DKSoft/p/3699136.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!