本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第2章,建议12-3,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
建议12-3:用减法运算来实现整数除法运算
我们知道,减法运算比除法运算要快得多。因此,对整数除法运算来说,如果知道被除数是除数很小的倍数,那么可以使用减法运算来代替除法运算。例如,对于下面的示例
代码:
unsigned int x=300;
unsigned int y=100;
unsigned int z=x/y;
我们可以将“z=x/y”表达式修改成如下形式:
unsigned int x=300;
unsigned int y=100;
unsigned int z=0;
while (x>=y)
{
x-=y;
++z;
}
这里使用减法来代替除法运算,虽然代码看起来不是很直观,但是在运行效率上确实要快许多。当然,具体效率也要取决于被除数与除数的倍数。如果倍数比较大,那么相应的循环次数就会增多,采取这种方法就得不偿失了。