第一次运行比第二次运行快吗?第一次手术是否应该更快,如果是的话,为什么?
u+= (u << 3) + (u << 1) //first operation
u+= u*10 //second operation
基本上他们两个做同样的事就是u= u+(10*u)
但我来到知道,第一个操作比第二快。 运行时的CPU时间与*不同。 Is multiplication by 10 actually equivalent to 10 addition operations being performed ?
如果速度更快,你的理解速度会更快,那么'u + = u * 10'就是一个! – assylias
根据具体情况,“u * = 11”可能更容易理解。 – Fanael
这个问题是重复的,除了仅询问Java和.NET的事实(尽管答案也适用于C和C++):http://stackoverflow.com/questions/1168451/is-shifting-bits在Java网络中快速扩大和分割的底线是你应该编写表达你的意图的代码。编译器今天非常擅长通过常量优化乘法或除法运算。而且他们会得到愚蠢的东西(比如正确地处理符号算术),如果你手动进行换档,情况可能并非总是如此。 –