Tuesday, 17 May 2016

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



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.


Answer




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)


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...