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