1. func divide(a int, b int) int {
    2. if a == math.MinInt32 && b == -1 {
    3. return math.MaxInt32
    4. }
    5. flag := 1
    6. if a < 0 {
    7. a = -a
    8. flag *= -1
    9. }
    10. if b < 0 {
    11. b = -b
    12. flag *= -1
    13. }
    14. res := 0
    15. for i := 31;i >= 0;i-- {
    16. if a >= (b<<i) {
    17. a -= (b<<i)
    18. res += (1<< i)
    19. }
    20. }
    21. return res * flag
    22. }