Given an unsigned integer x. Round it up to the next greater multiple of 8 using bitwise operations only.
Input : 35 Output : 40 Input : 64 Output : 64 (As 64 is already a multiple of 8. So, no modification is done.)
Solution 1: We first add 7 and get a number x + 7, then we use the technique to find next smaller multiple of 8 for (x+7). For example, if x = 12, we add 7 to get 19. Now we find next smaller multiple of 19, which is 16.
Solution 2: An efficient approach to solve this problem using bitwise AND operation is:
x = (x + 7) &(-8)
This will round up x to the next greater multiple of 8.
Time Complexity: O(1)
Space Complexity: O(1)
- Round to next smaller multiple of 8
- Puzzle | 3 cuts to cut round cake into 8 equal pieces
- Precision of floating point numbers in C++ (floor(), ceil(), trunc(), round() and setprecision())
- Efficiently check whether n is a multiple of 4 or not
- Find the multiple of x which is closest to a^b
- Find the largest multiple of 2, 3 and 5
- Transition shorthand with multiple properties in CSS?
- How to get multiple selected values of select box in php?
- Assigning multiple characters in an int in C language
- Smallest multiple of 3 which consists of three given non-zero digits
- Concept behind Multiple Booting Guide
- Check if binary string multiple of 3 using DFA
- Find the largest multiple of 3 | Set 1 (Using Queue)
- How to drop one or multiple columns in Pandas Dataframe
- Check if a number is multiple of 9 using bitwise operators
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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.