mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-12-19 07:00:35 +08:00
35 lines
1.1 KiB
Java
35 lines
1.1 KiB
Java
package com.thealgorithms.bitmanipulation;
|
|
|
|
/**
|
|
* Lowest Set Bit
|
|
* @author Prayas Kumar (https://github.com/prayas7102)
|
|
*/
|
|
|
|
public final class LowestSetBit {
|
|
// Private constructor to hide the default public one
|
|
private LowestSetBit() {
|
|
}
|
|
/**
|
|
* Isolates the lowest set bit of the given number. For example, if n = 18
|
|
* (binary: 10010), the result will be 2 (binary: 00010).
|
|
*
|
|
* @param n the number whose lowest set bit will be isolated
|
|
* @return the isolated lowest set bit of n
|
|
*/
|
|
public static int isolateLowestSetBit(int n) {
|
|
// Isolate the lowest set bit using n & -n
|
|
return n & -n;
|
|
}
|
|
/**
|
|
* Clears the lowest set bit of the given number.
|
|
* For example, if n = 18 (binary: 10010), the result will be 16 (binary: 10000).
|
|
*
|
|
* @param n the number whose lowest set bit will be cleared
|
|
* @return the number after clearing its lowest set bit
|
|
*/
|
|
public static int clearLowestSetBit(int n) {
|
|
// Clear the lowest set bit using n & (n - 1)
|
|
return n & (n - 1);
|
|
}
|
|
}
|