/**
 * Created by Ravi on 18-Nov-14.
 */
public class ClearRightmostSetBit
{
    public static void main(String []args)
    {
        Test();
    }

    private static void Test()
    {
        int x = 54;
        System.out.println("Input: " + Integer.toBinaryString(x));
        x = clearRightmostSetBit(x);
        System.out.println("Output: " + Integer.toBinaryString(x));

        x = 1;
        System.out.println("Input: " + Integer.toBinaryString(x));
        x = clearRightmostSetBit(x);
        System.out.println("Output: " + Integer.toBinaryString(x));

        x = 8;
        System.out.println("Input: " + Integer.toBinaryString(x));
        x = clearRightmostSetBit(x);
        System.out.println("Output: " + Integer.toBinaryString(x));

        x = 15;
        System.out.println("Input: " + Integer.toBinaryString(x));
        x = clearRightmostSetBit(x);
        System.out.println("Output: " + Integer.toBinaryString(x));
    }

    public static int clearRightmostSetBit(int num)
    {
        if( num != 0 )
            return num - (num & -num);
        return num;
    }
}