当前位置: 技术问答>linux和unix
面试题
来源: 互联网 发布时间:2015-11-01
本文导语: int a,b,c 请写函数实现C=a+b | a+b可能超过int的范围,也就是溢出。因此用意是考察思维是否周密。 | int c(int a, int b) { if ((65535 - a) =0&&b0 && b>0)//同正判断 { if ((unsigned i...
int a,b,c 请写函数实现C=a+b
|
a+b可能超过int的范围,也就是溢出。因此用意是考察思维是否周密。
|
int c(int a, int b)
{
if ((65535 - a) =0&&b0 && b>0)//同正判断
{
if ((unsigned int)c>>(sizeof(int) * 8 -1))//判断益出
return 1;
}
else
return 0;
}
{
if ((65535 - a) =0&&b0 && b>0)//同正判断
{
if ((unsigned int)c>>(sizeof(int) * 8 -1))//判断益出
return 1;
}
else
return 0;
}
|
c本来就是个int,还什么溢出不溢出。多此一举。
很多算法巴不得这种溢出呐,呵呵。
除非像asm一样,设置个cf,供以后normalize用,否则这个东东有什么意义。
楼上这段气势磅礴的代码,非常吓人。
throw?是编译器都支持么?
long long?这是专门针对gcc的考题么?
飘过~~~~~~~~~~~~~~~~~~~~~~~~
很多算法巴不得这种溢出呐,呵呵。
除非像asm一样,设置个cf,供以后normalize用,否则这个东东有什么意义。
楼上这段气势磅礴的代码,非常吓人。
throw?是编译器都支持么?
long long?这是专门针对gcc的考题么?
飘过~~~~~~~~~~~~~~~~~~~~~~~~
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。