实现除法

来源:互联网 发布:中国化妆品数据网 编辑:程序博客网 时间:2024/05/22 06:57

基本的策略就是:利用移位操作实现乘以2和除以2

除数等于0和1是特殊情况,可以提前判断,a<b也可以提前解决

1、被除数b乘以1,2,4,.......,2^n,直至b*2^n>=a,注意等号的区别处理

2、结果加上2^(n-1),a减去b*2^(n-1)

3、对a-b*2^(n-1),重复执行1,2

int div1(int a, int b){if (b == 0) return -1;if (a < b) return 0;int res = 0;while (a >= b){int temp = 1;while (b*temp < a){temp = temp << 1;}if (b*temp == a){res += temp;a = 0;}else{res += (temp >> 1);a = a - b*(temp >> 1);}}return res;}


原创粉丝点击