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.

My Personal Notes arrow_drop_up