Divide Two Integers

来源:互联网 发布:彩虹岛禁用小草网络 编辑:程序博客网 时间:2024/04/29 04:09

Divide Two Integers

Divide two integers without using multiplication, division and mod operator.

If it is overflow, return MAX_INT.

https://discuss.leetcode.com/topic/15568/detailed-explained-8ms-c-solution

解释如何通过比特操作实现除法。举例15除以3,如果只通过减法,会超时。结合位操作,将除数不断左移,直至大于

被除数。3<<1=6,6<15,接着左移,6<<1=12,12<15,再移,12<<1=24,此时24>15,说明只能左移两次,1<<2=4是

商的一部分(初始是为0),即15-3*4=3,接着求剩余的部分,此时被除数是3,除数是3,此时再把1加入商。


0 0