29. Divide Two Integers
class Solution {
public:
int divide(int dividend, int divisor) {
if(divisor==0 || (divisor==-1 && dividend==INT_MIN))
return INT_MAX;
int flag=((dividend<0)^(divisor<0)) ? -1 : 1; //异或
long dnd=labs(dividend); //labs针对long型,abs针对int型
long dor=labs(divisor);
int res=0;
while(dnd>=dor){
long temp=dor,mul=1;
while(dnd>=(temp<<1)){
temp<<=1;
mul<<=1;
}
res+=mul;
dnd-=temp;
}
return res*flag;
}
};