# Compute modulus division by a power-of-2-number

Compute n modulo d without division(/) and modulo(%) operators, where d is a power of 2 number.

Let ith bit from right is set in d. For getting n modulus d, we just need to return 0 to i-1 (from right) bits of n as they are and other bits as 0.

For example if n = 6 (00..110) and d = 4(00..100). Last set bit in d is at position 3 (from right side). So we need to return last two bits of n as they are and other bits as 0, i.e., 00..010.

Now doing it is so easy, guess it….

Yes, you have guessing it right. See the below program.

## C++

 `#include ` ` `  `// This function will return n % d. ` `// d must be one of: 1, 2, 4, 8, 16, 32, …  ` `unsigned ``int` `getModulo(unsigned ``int` `n,  ` `                       ``unsigned ``int` `d) ` `{ ` `return` `( n & (d - 1) ); ` `}          ` ` `  `// Driver Code ` `int` `main() ` `{ ` `unsigned ``int` `n = 6; ` ` `  `// d must be a power of 2 ` `unsigned ``int` `d = 4;  ` `printf``(``"%u moduo %u is %u"``, n, d, getModulo(n, d)); ` ` `  `getchar``(); ` `return` `0; ` `}      `

## Java

 `// Java code for Compute modulus division by  ` `// a power-of-2-number ` `class` `GFG { ` `     `  `    ``// This function will return n % d. ` `    ``// d must be one of: 1, 2, 4, 8, 16, 32, ` `    ``static` `int` `getModulo(``int` `n, ``int` `d) ` `    ``{ ` `        ``return` `( n & (d-``1``) ); ` `    ``}      ` `     `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``6``; ` `         `  `        ``/*d must be a power of 2*/` `        ``int` `d = ``4``;  ` `         `  `        ``System.out.println(n+``" moduo "` `+ d +  ` `                    ``" is "` `+ getModulo(n, d)); ` `    ``} ` `}  ` ` `  `// This code is contributed  ` `// by Smitha Dinesh Semwal. `

## Python3

 `# Python code to demonstrate ` `# modulus division by power of 2 ` ` `  ` `  `# This function will ` `# return n % d. ` `# d must be one of: ` `# 1, 2, 4, 8, 16, 32, …  ` `def` `getModulo(n, d): ` ` `  `    ``return` `( n & (d``-``1``) ) ` `          `  `# Driver program to ` `# test above function  ` `n ``=` `6` ` `  `#d must be a power of 2 ` `d ``=` `4`  `print``(n,``"moduo"``,d,``"is"``, ` `      ``getModulo(n, d)) ` ` `  `# This code is contributed by  ` `# Smitha Dinesh Semwal `

## C#

 `// C# code for Compute modulus ` `// division by a power-of-2-number ` `using` `System; ` ` `  `class` `GFG { ` `     `  `// This function will return n % d. ` `// d must be one of: 1, 2, 4, 8, 16, 32, …  ` `static` `uint` `getModulo( ``uint` `n, ``uint` `d) ` `{ ` `return` `( n & (d-1) ); ` `}      ` ` `  `// Driver code ` `static` `public` `void` `Main ()  ` `   ``{ ` `    ``uint` `n = 6; ` `    ``uint` `d = 4; ``/*d must be a power of 2*/` ` `  `    ``Console.WriteLine( n + ``" moduo "` `+ d +  ` `                ``" is "` `+ getModulo(n, d)); ` `     `  `    ``} ` `} ` `// This code is contributed by vt_m. `

## PHP

 ` `

Please write comments if you find any bug in the above program/algorithm or other ways to solve the same problem.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up

Improved By : vt_m

Article Tags :
Practice Tags :

3

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.