两个整数是否同号

来源:互联网 发布:centos 创建用户组 编辑:程序博客网 时间:2024/05/21 19:26
原帖在此
这代码登不上大雅之堂,仅以此留作纪念。
#include <limits.h>// 同号返回 1 ,否则返回 0int 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);