以下哪种技术是整数除以 2 的最佳选择,为什么?
技术1:
x = x >> 1;
技术2:
x = x / 2;
这里 x
是一个整数。
原文由 Abhineet 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下哪种技术是整数除以 2 的最佳选择,为什么?
技术1:
x = x >> 1;
技术2:
x = x / 2;
这里 x
是一个整数。
原文由 Abhineet 发布,翻译遵循 CC BY-SA 4.0 许可协议
显然,如果您正在为下一个阅读它的人编写代码,请确保“x/2”的清晰性。
但是,如果速度是您的目标,请尝试两种方式并计算结果的时间。 几个月前,我研究了一个位图卷积例程,其中涉及遍历整数数组并将每个元素除以 2。我做了各种优化它,包括用“x>>1”替换“x”的老技巧/2”。
当我实际上对两种方式进行计时时,我惊讶地发现 x/2 比 x>>1 快
这是使用 Microsoft VS2008 C++ 并打开默认优化。
原文由 Chris Bennet 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答486 阅读✓ 已解决
使用最能描述您正在尝试执行的操作的操作。
请注意,它们并不完全相同。对于负整数,它们可以给出不同的结果。例如:
(想法)