Given two numbers, find floor of their average without using division.
Input : x = 10, y = 12 Output : 11 Input : x = 10, y = 7 Output : 8 We take floor of sum.
The idea is to use right shift operator, instead of doing (x + y)/2, we do (x + y) >> 1
Average = 15
We need floor of average of two numbers in many standard algorithms like Merge Sort, Binary Search, etc. Since we use bitwise operator instead of division, the above way of finding average is faster.
- How to swap two numbers without using a temporary variable?
- Compute modulus division by a power-of-2-number
- Count total set bits in all numbers from 1 to n
- Add two numbers without using arithmetic operators
- Russian Peasant (Multiply two numbers using bitwise operators)
- Subtract two numbers without using arithmetic operators
- Calculate 7n/8 without using division and multiplication operators
- Cyclic Redundancy Check and Modulo-2 Division
- Print first n numbers with exactly two set bits
- Find Two Missing Numbers | Set 2 (XOR based solution)
- Check if a number can be expressed as a sum of consecutive numbers
- Multiplication of two numbers with shift operator
- Count smaller numbers whose XOR with n produces greater value
- Check if two numbers are equal without using arithmetic and comparison operators
- Numbers whose bitwise OR and sum with N are equal
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.