‘x = x &
(-x)’ isolate right most set bit.
100
000001100100
-100 111110011100
-------------------------------
100 &
-100 000000000100
-------------------------------
-------------------------------
public class IsloateNthBit { public static int isolateRightMostNthBit(int num) { num = num & (-num); return num; } }
Following is
the junit test case.
import static org.junit.Assert.assertEquals; import org.junit.Test; public class IsloateNthBitTest { @Test public void test1(){ assertEquals(IsloateNthBit.isolateRightMostNthBit(100), 4); assertEquals(IsloateNthBit.isolateRightMostNthBit(123), 1); assertEquals(IsloateNthBit.isolateRightMostNthBit(204), 4); assertEquals(IsloateNthBit.isolateRightMostNthBit(256), 256); } }
No comments:
Post a Comment