public int divide(int dividend, int divisor) {
        boolean sign = (dividend > 0) ^ (divisor > 0);
        int result = 0;
        if(dividend>0) {
            dividend = -dividend;
        }
        if(divisor>0) divisor = -divisor;
        while(dividend <= divisor) {
            int temp_result = -1;
            int temp_divisor = divisor;
            while(dividend <= (temp_divisor << 1)) {
                if(temp_divisor <= (Integer.MIN_VALUE >> 1))break;
                temp_result = temp_result << 1;
                temp_divisor = temp_divisor << 1;
            }
            dividend = dividend - temp_divisor;
            result += temp_result;
        }
        if(!sign) {
            if(result <= Integer.MIN_VALUE) return Integer.MAX_VALUE;
            result = - result;
        }
        return result;

    }

 

相关文章:

  • 2021-10-01
  • 2021-04-18
  • 2021-07-24
  • 2021-10-23
  • 2021-12-29
  • 2021-08-11
  • 2022-12-23
  • 2021-06-07
猜你喜欢
  • 2022-12-23
  • 2021-04-19
  • 2022-02-18
  • 2021-12-29
  • 2022-12-23
  • 2021-09-11
  • 2021-06-09
相关资源
相似解决方案