现在的位置: 首页 > 综合 > 正文

两个整数是否同号

2013年11月30日 ⁄ 综合 ⁄ 共 205字 ⁄ 字号 评论关闭

原帖在此
这代码登不上大雅之堂,仅以此留作纪念。

#include <limits.h>

// 同号返回 1 ,否则返回 0
int sameSign(int a, int b)
{
    return !((a^b) & INT_MIN);
}

// 零可正可负
    return !(((a^b) & INT_MIN) && (a&&b));

// 视零为负,但有个 bug ,参数不能是 INT_MIN ,否则会溢出。
    --a, --b;
    return !((a^b) & INT_MIN);

抱歉!评论已关闭.