How to extract the last N bits of a 32-bit integer in PHP

1 Answer

0 votes
function get_last_N_bits($number, $N) {
    $mask = (1 << $N) - 1;
         
    return $number & $mask;
}
 
$number = 441; // 00000001101-11001
$N = 5;

 
/*
 str_replace(
    array|string $search,
    array|string $replace,
    string|array $subject,
    int &$count = null
): string|array
*/
 
 
echo str_replace(" ", "0", sprintf("%16s", decbin($number))) . "\n";
 
$lastNbits = get_last_N_bits($number, $N);
 
echo str_replace(" ", "0", sprintf("%16s", decbin($lastNbits)));
 
 
 
 
 
/*
run:
      
0000000110111001
0000000000011001
      
*/

 



answered Dec 24, 2023 by avibootz

Related questions

1 answer 128 views
1 answer 126 views
1 answer 114 views
1 answer 141 views
1 answer 128 views
1 answer 122 views
1 answer 127 views
...