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
*/