69,369
社区成员
发帖
与我相关
我的任务
分享
int sameSign(int a, int b)
{
if ( a == 0 )
return 1;
else if ( a > 0 )
return b >= 0;
else
return b <= 0;
}
int sameSign(int a, int b)
{
return a*b >= 0;
}
/* 符号位是否为1 */
/* &后面的是常数,在编译时就可以计算出来 */
#define GET_SIGN(x) ((x) & (1 << (sizeof(int) * 8 - 1)))
int sameSign(int a, int b)
{
if (GET_SIGN(a) == GET_SIGN(b))
return 1;
else
return 0;
}
int sameSign(int a, int b)
{
return ((a^b)>>31)^1;
}
int sameSign(int a, int b) {//0和负认为符号相同
if ((a >0 && b >0)
|| (a<=0 && b<=0))
return 1;
else
return 0;
}
#include <limits.h>
// 视零为负
int sameSign(int a, int b)
{
--a, --b;
return !((a^b) & INT_MIN);
}