哪个是将整数除以 2 的更好选择?

以下哪种技术是将整数除以 2 的最佳选择,为什么?

Which of the following techniques is the best option for dividing an integer by 2 and why?

技术一:

x = x >> 1;

技术二:

x = x / 2;

这里x是一个整数.

推荐答案

使用最能描述您要执行的操作的操作.

Use the operation that best describes what you are trying to do.

  • 如果您将数字视为位序列,请使用 bitshift.
  • 如果您将其视为数值,请使用除法.

请注意,它们并不完全等效.对于负整数,它们可以给出不同的结果.例如:

Note that they are not exactly equivalent. They can give different results for negative integers. For example:

-5 / 2  = -2
-5 >> 1 = -3

(ideone)

相关文章