Related Articles

# Extract ‘k’ bits from a given position in a number.

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

How to extract ‘k’ bits from a given position ‘p’ in a number?

Examples:

```Input : number = 171
k = 5
p = 2
Output : The extracted number is 21
171 is represented as 0101011 in binary,
so, you should get only 10101 i.e. 21.

Input : number = 72
k = 5
p = 1
Output : The extracted number is 8
72 is represented as 1001000 in binary,
so, you should get only 01000 i.e 8.
```

1) Right shift number by p-1.
2) Do bit wise AND of k set bits with the modified number. We can get k set bits by doing (1 << k) – 1.

## C++

 `// C++ program to extract k bits from a given``// position.``#include ``using` `namespace` `std;` `// Function to extract k bits from p position``// and returns the extracted value as integer``int` `bitExtracted(``int` `number, ``int` `k, ``int` `p)``{``    ``return` `(((1 << k) - 1) & (number >> (p - 1)));``}` `// Driver code``int` `main()``{``    ``int` `number = 171, k = 5, p = 2;``    ``cout << ``"The extracted number is "` `<<``            ``bitExtracted(number, k, p);``            ` `    ``return` `0;``}` `// This code is contributed by importantly`

## C

 `// C program to extract k bits from a given``// position.``#include ` `// Function to extract k bits from p position``// and returns the extracted value as integer``int` `bitExtracted(``int` `number, ``int` `k, ``int` `p)``{``    ``return` `(((1 << k) - 1) & (number >> (p - 1)));``}` `// Driver code``int` `main()``{``    ``int` `number = 171, k = 5, p = 2;``    ``printf``(``"The extracted number is %d"``,``               ``bitExtracted(number, k, p));``    ``return` `0;``}`

## Java

 `// Java program to extract k bits from a given``// position.` `class` `GFG {` `    ``// Function to extract k bits from p position``    ``// and returns the extracted value as integer``    ``static` `int` `bitExtracted(``int` `number, ``int` `k, ``int` `p)``    ``{``        ``return` `(((``1` `<< k) - ``1``) & (number >> (p - ``1``)));``    ``}`` ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args) {``        ``int` `number = ``171``, k = ``5``, p = ``2``;``        ``System.out.println(``"The extracted number is "``+``               ``bitExtracted(number, k, p));``    ``}``}`

## Python

 `# Python program to extract k bits from a given``# position.` `# Function to extract k bits from p position``# and returns the extracted value as integer``def` `bitExtracted(number, k, p):  ``    ``return` `( ((``1` `<< k) ``-` `1``)  &  (number >> (p``-``1``) ) );` `# number is from where 'k' bits are extracted``# from p position``number ``=` `171``k ``=` `5``p ``=` `2``print` `"The extracted number is "``, bitExtracted(number, k, p)`

## C#

 `// C# program to extract k bits from a given``// position.``using` `System;` `class` `GFG {`` ` `    ``// Function to extract k bits from p position``    ``// and returns the extracted value as integer``    ``static` `int` `bitExtracted(``int` `number, ``int` `k, ``int` `p)``    ``{``        ``return` `(((1 << k) - 1) & (number >> (p - 1)));``    ``}``  ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int` `number = 171, k = 5, p = 2;``        ` `        ``Console.WriteLine(``"The extracted number is "``                      ``+ bitExtracted(number, k, p));``    ``}``}` `//This code is contributed by Anant Agarwal.`

## PHP

 `> (``\$p` `- 1)));``}` `    ``// Driver Code``    ``\$number` `= 171; ``\$k` `= 5; ``\$p` `= 2;``    ``echo` `"The extracted number is "``,``          ``bitExtracted(``\$number``, ``\$k``, ``\$p``);``          ` `// This code is contributed by Ajit``?>`

## Javascript

 ``

Output :

`The extracted number is 21`

This article is contributed by Ujjwal Aryal. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.