判断两个变量的正负号不同

原创
2015/09/07 22:41
阅读数 4.7K

这是个非常有趣的主题。。。

逗b青年的做法是:

if (x * y < 0) {
}

这种做法有可能乘法溢出。

屌丝青年的做法:

if (x > 0 && y < 0 || x < 0 && y > 0) {
}

这种做法符合大多数人的想法。

文艺青年的做法:

if (x < 0 != y < 0) {
}

此处留白。。。

展开阅读全文
打赏
0
2 收藏
分享
加载中
guonaihong博主

引用来自“寒川”的评论

if(a==0-b && a!=0){

}
这个还是完成了和if(a<>b && abs(a)==abs(b)){ } 差不多的功能。只能判断绝对值不同,符号相反的数。。。 我中午吃饭的时候突然想到一个办法判断两个变量一正一负的情况。 思路是这样的。负数在内存中最高位的bit位是1。正数的最高bit位是0 。如果这两个变量异或,最高bit位还是1。结果小于0。 if ((x ^ y) < 0 ) { } 这种因该也可以。。
2015/09/08 21:05
回复
举报
if(a==0-b && a!=0){

}
2015/09/08 14:04
回复
举报
guonaihong博主

引用来自“寒川”的评论

if(a<>b && abs(a)==abs(b)){
}
这个可以完成a,b两个变量绝对值相同,正负号相反这种情况。可是只需要完成两个变量正负号不同的判断即可。。再想想看有没有不同的想法。。。
2015/09/08 13:38
回复
举报
if(a<>b && abs(a)==abs(b)){
}
2015/09/08 08:40
回复
举报
更多评论
打赏
4 评论
2 收藏
0
分享
返回顶部
顶部