两数相除
class Solution {
public:
int divide(int dividend, int divisor) {
//使用的是位运算,使用位运算的方法,不停地进行相应的减法操作
long beichushu = labs(dividend);
long chushu = labs(divisor);
//int flag = 1;
long result = 0;
while (beichushu >= chushu)
{
//进入到每次需要的迭代的过程,1,2,4,8这种
long t = chushu;
long res = 1;
while (beichushu >= (t << 1))
{
res = res << 1;
t = t << 1;
}
result += res;
beichushu = beichushu - t;
}
if ((dividend < 0)^(divisor < 0))
result = -result;
if (result>INT_MAX) result = INT_MAX;
return result;
}
};