How to get the lowest order set bit of a number in PHP

1 Answer

0 votes
define('INT_SIZE', PHP_INT_SIZE * 8);

function getLowestOrderSetBit($number) {
    $lowestOrderBitIndex = -1;
    
    for ($i = 0; $i < INT_SIZE; $i++) {
        if (($number >> $i) & 1 == 1) {
            $lowestOrderBitIndex = $i;
            break;
        }
    }
    
    return $lowestOrderBitIndex;
}

$number = 1688; // 11010011000

$lowestOrderBitIndex = getLowestOrderSetBit($number);

echo $lowestOrderBitIndex;


    
    
/*
run:
   
3
    
*/

 



answered Apr 6, 2024 by avibootz

Related questions

1 answer 178 views
1 answer 126 views
1 answer 110 views
1 answer 169 views
1 answer 163 views
1 answer 120 views
120 views asked Apr 5, 2024 by avibootz
1 answer 99 views
99 views asked Apr 6, 2024 by avibootz
...