Open In App

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

Improve
Improve
Like Article
Like
Save
Share
Report

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 10101011 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 <bits/stdc++.h>
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 <stdio.h>
 
// 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));
    }
}


Python3




# 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




<?php
//PHP program to extract
// k bits from a given
// position.
 
// Function to extract k
// bits from p position
// and returns the extracted
// value as integer
function bitExtracted($number, $k, $p)
{
    return (((1 << $k) - 1) &
           ($number >> ($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




<script>
// JavaScript program to extract k bits from a given
// position.
 
// Function to extract k bits from p position
// and returns the extracted value as integer
function bitExtracted(number, k, p)
{
    return (((1 << k) - 1) & (number >> (p - 1)));
}
 
// Driver code
 
    let number = 171, k = 5, p = 2;
    document.write("The extracted number is ",
            bitExtracted(number, k, p));
 
 
// This code is contributed by Manoj.
</script>


Output : 

The extracted number is 21

Time Complexity: O(1)

Auxiliary Space: O(1)
 

 



Last Updated : 31 Jul, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads