在 C 语言中,可以使用按位运算符来执行乘法和除法,如下所示:
i*2 = i << 1 i*3 = (i << 1) + i; i*10 = (i << 3) + (i << 1)
这就提出了这样的问题:这种按位运算是否确实比直接乘法或
简短答案: 不太可能。
长答案:
现代编译器采用基于处理器架构有效处理乘法的优化器。使用标准 i*10 语法允许编译器确定系统的最佳汇编/机器代码序列。乘法指令本身甚至有可能使用移位和加法运算在内部实现。
为了清晰和可维护性,建议使用适当的运算符(按位运算的移位,乘法用于乘法)而不是使用按位运算符进行算术目的。您的代码将更容易被其他人理解,并且也可能被编译器优化。
以上是在 C 语言中使用移位运算符的乘法和除法真的更快吗?的详细内容。更多信息请关注PHP中文网其他相关文章!