Related Articles

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

• Difficulty Level : Medium
• Last Updated : 28 Apr, 2021

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

 ``

## Javascript

 ``

References:
http://graphics.stanford.edu/~seander/bithacks.html#ModulusDivisionEasy
Please write comments if you find any bug in the above program/algorithm or other ways to solve the same problem.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up