一.尽量使用整数,少用浮点数
整数运算比浮点数快得多。
二.避免乘法与除法
乘法与除法都是相当浪费CPU运算时间的一种运算,在无法避免时,如果乘除的数目为2次方, 例如2、4、8、16等,则可改用左移或右移来取代:
a*2^n-->a<<n 例:a*16-->a<<4
a/2^n-->a>>n 例:a/32-->a>>5
上式中2^n表示2的n次方。
三.少用求模运算
求模的运算(%)通常也是用乘除来完成的,所以速度很慢,我们也要尽量避免,当然如果除数为2的次方,那么可以改 用&来替代:
a%2^n --> a&(2^n-1)
例:a%8 --> a&0x07
注意,如果除数不是2的次方,绝不能用&来替代。
四.使用寄存器变量
寄存器的存取速度要比内存快,一般c/c++编译器都至少提供1~2个寄存器变量给程序使用,我们应该将使用最频繁的变量 定义成寄存器变量,这样可以加快执行效率,例如:
register int i;
for( i=0; i<3000; i++ )
*(p+i) = 0x0f;
五. s=0;
for(i=1;i<=5;++i)
for(j=1;j<=100;++j)
++s;
++i和i++的区别是前者直接将变量加1返回,而后者先保存变量值,再加1,之后返回,差两个指令