概述
基本的策略就是:利用移位操作实现乘以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;
}
最后
以上就是会撒娇麦片为你收集整理的实现除法的全部内容,希望文章能够帮你解决实现除法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复