Extract ‘k’ bits from a given position in a number.
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++
#include <bits/stdc++.h>
using namespace std;
int bitExtracted( int number, int k, int p)
{
return (((1 << k) - 1) & (number >> (p - 1)));
}
int main()
{
int number = 171, k = 5, p = 2;
cout << "The extracted number is " <<
bitExtracted(number, k, p);
return 0;
}
|
C
#include <stdio.h>
int bitExtracted( int number, int k, int p)
{
return (((1 << k) - 1) & (number >> (p - 1)));
}
int main()
{
int number = 171, k = 5, p = 2;
printf ( "The extracted number is %d" ,
bitExtracted(number, k, p));
return 0;
}
|
Java
class GFG {
static int bitExtracted( int number, int k, int p)
{
return ((( 1 << k) - 1 ) & (number >> (p - 1 )));
}
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
def bitExtracted(number, k, p):
return ( (( 1 << k) - 1 ) & (number >> (p - 1 ) ) );
number = 171
k = 5
p = 2
print ( "The extracted number is " , bitExtracted(number, k, p))
|
C#
using System;
class GFG {
static int bitExtracted( int number, int k, int p)
{
return (((1 << k) - 1) & (number >> (p - 1)));
}
public static void Main()
{
int number = 171, k = 5, p = 2;
Console.WriteLine( "The extracted number is "
+ bitExtracted(number, k, p));
}
}
|
PHP
<?php
function bitExtracted( $number , $k , $p )
{
return (((1 << $k ) - 1) &
( $number >> ( $p - 1)));
}
$number = 171; $k = 5; $p = 2;
echo "The extracted number is " ,
bitExtracted( $number , $k , $p );
?>
|
Javascript
<script>
function bitExtracted(number, k, p)
{
return (((1 << k) - 1) & (number >> (p - 1)));
}
let number = 171, k = 5, p = 2;
document.write( "The extracted number is " ,
bitExtracted(number, k, p));
</script>
|
Output :
The extracted number is 21
Time Complexity: O(1)
Auxiliary Space: O(1)
Last Updated :
31 Jul, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...