首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

写一个高性能的int 乘以9 的函数,该怎么解决

2012-04-11 
写一个高性能的int 乘以9 的函数如题,如何处理为好?[解决办法]一般情况下CPU的位运算比乘除运算是快很多的

写一个高性能的int 乘以9 的函数
如题,如何处理为好?

[解决办法]
一般情况下CPU的位运算比乘除运算是快很多的,这也是我们优化的方向之一
*9的情况,上面各位大虾也给出*8+1的方案

我们懂,当然编译器也懂,但是因为编译器要兼顾所有情况,所有其针对特定case的优化能力有限,例如对于乘除法,对于无符号数的优化就比较好,对于有符号数则常常无能为力

所以,个人认为对于2-8原则中的影响性能的那20%的代码,有时间优化,还是自己做下优化~
[解决办法]
你就写 x * 9 , 在x86上合格的编译器都会优化成 leal (%eax,%eax,8) , %ecx 或者类似的代码.
[解决办法]
左移三位 等于乘以8,然后加上自己,即原来的9倍

热点排行