How to set the rightmost unset bit in a number in Java

1 Answer

0 votes
public class MyClass {
    static int setRightmostUnsetBit(int n) {
        if ((n & (n + 1)) == 0) 
            return n;
         
        return n | (n + 1);
    }
    public static void main(String args[]) {
        int n = 25;
         
        System.out.println(Integer.toBinaryString(n));
        System.out.println(Integer.toBinaryString(setRightmostUnsetBit(n)));
    }
}
 
 
 
/*
run:
 
11001
11011
 
*/

 



answered Jul 12, 2022 by avibootz
edited Jul 12, 2022 by avibootz

Related questions

1 answer 127 views
1 answer 133 views
1 answer 202 views
1 answer 131 views
131 views asked Mar 31, 2019 by avibootz
1 answer 143 views
143 views asked Mar 31, 2019 by avibootz
...