# Round to next greater multiple of 8

• Difficulty Level : Medium
• Last Updated : 12 Mar, 2023

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 ``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

 ``

## Javascript

 ``

Output

`40`

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

Solution 3:

An efficient approach to solve this problem is using shift operators, as the next greater multiple of 8 can be obtained as the product of 8 and (num + 7) / 8.

## C++

 `// CPP program to find smallest greater multiple``// of 8 for a given number``#include ``using` `namespace` `std;` `// Returns next greater multiple of 8``int` `RoundUp(``int``& x)``{``    ``return` `((x + 7) >> 3) << 3;``}` `//Driver Code``int` `main()``{``    ``int` `x = 39;``    ` `    ``//Function call``    ``cout << RoundUp(x);``    ``return` `0;``}` `//This code is contributed by phasing17`

## Java

 `import` `java.util.*;` `class` `Main {``  ``static` `int` `roundUp(``int` `x)``  ``{` `    ``// Returns next greater multiple of 8``    ``return` `((x + ``7``) >> ``3``) << ``3``;``  ``}` `  ``// Driver code``  ``public` `static` `void` `main(String[] args) {``    ``int` `x = ``39``;``    ``System.out.println(roundUp(x));``  ``}``}` `// This code is contributed by vinayetbi1.`

## C#

 `using` `System;` `class` `GFG {``  ``static` `int` `RoundUp(``int` `x)``  ``{``    ``// Returns next greater multiple of 8``    ``return` `((x + 7) >> 3) << 3;``  ``}` `  ``// Driver code``  ``public` `static` `void` `Main(``string``[] args)``  ``{``    ``int` `x = 39;``    ``Console.WriteLine(RoundUp(x));``  ``}``}` `// This code is contributed by phasing17.`

## Javascript

 `// 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) >> 3) << 3;``}` `// Driver Code``let x = 39;``    ` `// Function call``console.log(RoundUp(x));` `// This code is contributed by phasing17`

## Python3

 `def` `roundUp(x):``  ``# Returns next greater multiple of 8``  ``return` `((x ``+` `7``) >> ``3``) << ``3` `# Driver code``x ``=` `39``print``(roundUp(x))`

Output

`40`

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

My Personal Notes arrow_drop_up