我怎样才能摆脱除法运算符?

时间:2011-12-25 17:00:02

标签: c optimization micro-optimization

而不是写“/ 6”,我应该写什么才能摆脱除法运算符?

int a ;
c =  a / 6 ;

如果您对该主题有更多了解,可以在b!= 2的倍数时给我一般算法吗?

前:

b = 1,3,5,6,7,9,10等

1 个答案:

答案 0 :(得分:1)

嗯,移位和减法(将/替换为>>和可选-的一般形式,常见于2次幂除数)是除法运算是int,所以我不确定你应该如何消除它。如果他们说用模数(%)代替它,我会觉得很难认真对待。对于floatdouble,你可以尝试乘以倒数(将除法移动到编译时而不是运行时),只要你没有失去太多的精度,那就是不使用定点表示而对整数类型更棘手。