Which is better option to use for dividing an integer number by 2?

c, c++, division, micro-optimization, optimization

Solution

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

- If you are treating the number as a sequence of bits, use bitshift.

- If you are treating it as a numerical value, use division.

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

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

(ideone)

Problem

Which of the following techniques is the best option for dividing an integer by 2 and why? Technique 1: ``` x = x >> 1; ``` Technique 2: ``` x = x / 2; ``` Here `x` is an integer.

Original source

Related problems