How did you solve it?
On finding the average of two unsigned integers without overflow
by Raymond Chen
From the article:
Finding the average of two unsigned integers, rounding toward zero, sounds easy:
- unsigned average(unsigned a, unsigned b)
- {
- return (a + b) / 2;
- }
However, this gives the wrong answer in the face of integer overflow: For example, if unsigned integers are 32 bits wide, then it says that average(0x80000000U, 0x80000000U) is zero…
Add a Comment
Comments are closed.