例如,可以使用位运算符来实现乘法和除法
i*2 = i<<1
i*3 = (i<<1) + i;
i*10 = (i<<3) + (i<<1)
等等
用(i<<3)+(i<<1)
乘以10比直接用i*10
快吗?有没有什么输入不能用这种方法进行乘法或除法?
例如,可以使用位运算符来实现乘法和除法
i*2 = i<<1
i*3 = (i<<1) + i;
i*10 = (i<<3) + (i<<1)
等等
用(i<<3)+(i<<1)
乘以10比直接用i*10
快吗?有没有什么输入不能用这种方法进行乘法或除法?
简单回答:不太可能.
详细回答:
底线是--不要花太多时间担心这件事.如果你想换档,那就换档吧.如果你想乘,那就乘吧.做语义上最清楚的事情--你的同事稍后会感谢你的.或者,更有可能的是,如果你不这样做,以后会诅咒你.