通常情况下判断两个数是否异号最直接的方法是
bool cmp(int a, int b)
{
return a*b<0;
}
这种方法其实存在一个潜在问题,如果a*b的值超过了int类型的最大值,就会越界出错,而且是非常有可能发生的一件事
为了减少这个问题发生的可能,要把接收数字的容器换为long long。有没有能从根本上解决这个问题的方法呢?我在网上找到了一种利用位运算的方法
即
通常情况下判断两个数是否异号最直接的方法是
bool cmp(int a, int b)
{
return a*b<0;
}
这种方法其实存在一个潜在问题,如果a*b的值超过了int类型的最大值,就会越界出错,而且是非常有可能发生的一件事
为了减少这个问题发生的可能,要把接收数字的容器换为long long。有没有能从根本上解决这个问题的方法呢?我在网上找到了一种利用位运算的方法
即