将数字加倍-左移与乘法
之间有什么区别
int size = (int)((length * 200L) / 100L); // (1)
和
int size = length << 1; // (2)
(在两种情况下,长度都是int)
我假设两个代码片段都希望将length参数加倍。
我很想使用(2)…所以使用(1)有什么好处吗?我查看了发生溢出时的极端情况,并且两个版本似乎都具有相同的行为。
请告诉我我想念的是什么。
回答:
这是第三个选项:
int size = length * 2; // Comment explaining what is 2 or what means this multiplication
这必须是最好的选择。由于可读性强,易于理解您想要做什么。至于性能,编译器正在生成相当优化的代码,因此无需担心如此简单的操作。如果您对溢出有任何疑问,可以使用checked
块。
正如许多其他人所提到的,只需在2
这里使用任何有意义的变量即可。
以上是 将数字加倍-左移与乘法 的全部内容, 来源链接: utcz.com/qa/397332.html