How to count the number of bits to be flipped to convert N1 to N2 in PHP

1 Answer

0 votes
function flipped_count($a, $b) {
    $n = $a ^ $b;
    $count = 0;
          
    while ($n > 0) {
        $count++;
        $n &= ($n - 1);
    }
    return $count;
}
        
$a = 7;
$b = 10;
          
echo "a = " . sprintf("%04d", decbin($a)) . "\n";
echo "b = " . decbin($b) . "\n";
echo "a ^ b = " . decbin($a ^ $b) . "\n";

echo flipped_count($a, $b);

  
  
  
/*
run:
   
a = 0111
b = 1010
a ^ b = 1101
3
   
*/

 



answered Dec 27, 2021 by avibootz
...