Find the position of rightmost set bit of integer in php
Php program for Find the position of rightmost set bit of integer. Here problem description and other solutions.
<?php
/*
Php Program for
Find position of rightmost set bit
*/
class BitPosition
{
// Finding the right most active bit position
public function rightmostActiveBit($n)
{
if ($n <= 0)
{
return;
}
/*
Example
———————
n = 320
n = (00101000000) Binary
-n = (11011000000) (2s)
Calculate log2
——————————————
Formula : log(n & -n) / log(2) + 1
-----------------------------------
log(320 & -320) / log(2) + 1)
Here : log(320 & -320) = log(64) = 4.158883
log(2) = 0.693147
(4.158883 / 0.693147) + 1 = (7) position
————————————————————————————————————————
*/
// Calculate rightmost active bits
$result = (int)(log($n & -$n) / log(2) + 1);
echo " Number : ",$n,
" Result : ",$result, "\n";
}
public static
function main($args)
{
$task = new BitPosition();
// Test Cases
// 320 = Binary(101000000)
$task->rightmostActiveBit(320);
// (1000) = Binary(1111101000)
$task->rightmostActiveBit(1000);
// (153) = Binary(10011001)
$task->rightmostActiveBit(153);
// (354) = Binary(101100010)
$task->rightmostActiveBit(354);
// 160 = Binary(10100000)
$task->rightmostActiveBit(160);
}
}
BitPosition::main(array());
Output
Number : 320 Result : 7
Number : 1000 Result : 4
Number : 153 Result : 1
Number : 354 Result : 2
Number : 160 Result : 6
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment