原帖在此
这代码登不上大雅之堂,仅以此留作纪念。
#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);
原帖在此
这代码登不上大雅之堂,仅以此留作纪念。
#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);