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 113 views
1 answer 120 views
1 answer 196 views
1 answer 122 views
122 views asked Mar 31, 2019 by avibootz
1 answer 134 views
134 views asked Mar 31, 2019 by avibootz
...