Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Round to next greater multiple of 8

  • Difficulty Level : Medium
  • Last Updated : 12 May, 2021

Given an unsigned integer x. Round it up to the next greater multiple of 8 using bitwise operations only.
Examples: 
 

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. 
 

C++




// CPP program to find smallest greater multiple
// of 8 for a given number
#include <bits/stdc++.h>
using namespace std;
 
// Returns next greater multiple of 8
int RoundUp(int& x)
{
    return ((x + 7) & (-8));
}
 
int main()
{
    int x = 39;
    cout << RoundUp(x);
    return 0;
}

Java




// Java program to find smallest
// greater multiple of 8 for
// a given number
import java.util.*;
import java.lang.*;
 
// Returns next greater
// multiple of 8
class GFG
{
    static int RoundUp(int x)
    {
        return ((x + 7) & (-8));
    }
     
    // Driver Code
    public static void main(String args[])
    {
        int x = 39;
        System.out.println(RoundUp(x));
    }
}
 
// This code is contributed
// by Akanksha Rai(Abby_akku)

Python 3




# Python 3 program to find
# smallest greater multiple
# of 8 for a given number
 
# Returns next greater
# multiple of 8
def RoundUp(x):
    return ((x + 7) & (-8))
     
# Driver Code
x = 39
print(RoundUp(x))
 
# This code is contributed
# by prerna saini

C#




// C# program to find smallest
// greater multiple of 8 for
// a given number
using System;
 
// Returns next greater
// multiple of 8
class GFG
{
    static int RoundUp(int x)
    {
        return ((x + 7) & (-8));
    }
     
    // Driver Code
    public static void Main()
    {
        int x = 39;
        Console.WriteLine(RoundUp(x));
    }
}
 
// This code is contributed
// by SoumikMondal

PHP




<?php
// PHP program to find smallest greater
// multiple of 8 for a given number
 
// Returns next greater
// multiple of 8
function RoundUp($x)
{
    return (($x + 7) & (-8));
}
 
// Driver Code
$x = 39;
echo RoundUp($x);
 
// This code is contributed
// by Akanksha Rai(Abby_akku)
?>

Javascript




<script>
    // Javascript program to find smallest
    // greater multiple of 8 for
    // a given number
     
    // Returns next greater
    // multiple of 8
    function RoundUp(x)
    {
        return ((x + 7) & (-8));
    }
     
    let x = 39;
      document.write(RoundUp(x));
 
</script>
Output: 
40

 

Time Complexity: O(1) 
Space Complexity: O(1)
 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!