新闻中心

EEPW首页>嵌入式系统>设计应用> 高效的C编程之:除法运算

高效的C编程之:除法运算

作者: 时间:2013-09-30 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257023.htm

14.2.3

为了避免在程序中使用,可以将一些典型的进行转换。下面的例子提供一种转换方法。

uintcounter1(uintcount)

{return(++count%60);

}

转换成,

uintcounter2(uintcount)

{if(++count>=60)

count=0;

return(count);

}

下面是两个功能函数编译后的汇编代码。

counter1

STMDBsp!,{lr}

ADDa2,a1,#1

MOVa1,#3c

BL__rt_udiv

MOVa1,a2

LDMIAsp!,{pc}

counter2

ADDa1,a1,#1

CMPa1,#3c

MOVCSa1,#0

MOVpc,lr

上面的例子清晰的显示了使用if语句代替后,代码的执行效率有很大提高。

14.2.4除数是常数的除法

因为除法和模运算执行起来比较慢,所以应该尽可能地避免使用。但是除数是常数的和用同一个除数的重复除法,执行效率会比较高。在的除法库中,存在除数为10的除法运算库,其中包括有符号除法和无符号除法。如果除数是10以外的其他常数,用户可以编写自己的功能函数。的开发工具集中,提供了关于除数是常数的示例程序和算法分析,以供用户编写自己的代码时参考。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭