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 230 views
1 answer 216 views
1 answer 203 views
1 answer 224 views
1 answer 246 views
1 answer 219 views
1 answer 244 views
...