class Solution{
public:
int divide(int a, int b){
if(a==INT_MIN && b==-1) return INT_MAX;
int flag = (a>0)^(b>0) ? -1 : 1;
unsigned int ua = abs(a);
unsigned int ub = abs(b);
unsigned int res = 0;
for(int i=31; i>=0; i--){
if((ua>>i) >= ub){
ua -= ub<<i;
res += 1<<i;
}
}
return flag==1 ? res : -res;
}
};
1)剑指 Offer II 001. 整数除法class Solution{public: int divide(int a, int b){ if(a==INT_MIN && b==-1) return INT_MAX; int flag = (a>0)^(b>0) ? -1 : 1; unsigned int ua = abs(a); unsigned int ub = abs(b);