import java.util.BitSet;
public class BitSetExample {
public static void main(String[] args) {
// Create a BitSet with a default size
BitSet bitSet = new BitSet();
// Set some bits
bitSet.set(0); // Set bit at index 0
bitSet.set(2); // Set bit at index 2
bitSet.set(4); // Set bit at index 4
// Print the BitSet in reversed binary format
System.out.println("BitSet:");
printBitSet(bitSet, 16);
// Check if a specific bit is set
boolean isSet = bitSet.get(2);
System.out.println("Is bit at index 2 set? " + isSet);
// Clear a bit
bitSet.clear(2);
System.out.println("BitSet after clearing bit at index 2:");
printBitSet(bitSet, 16);
// Get the number of bits set to true
int cardinality = bitSet.cardinality();
System.out.println("Number of bits set to true: " + cardinality);
}
// Function to print the BitSet as 0 and 1 in reverse order
public static void printBitSet(BitSet bitSet, int size) {
for (int i = size - 1; i >= 0; i--) { // Iterate in reverse order
System.out.print(bitSet.get(i) ? "1" : "0");
}
System.out.println();
}
}
/*
run:
BitSet:
0000000000010101
Is bit at index 2 set? true
BitSet after clearing bit at index 2:
0000000000010001
Number of bits set to true: 2
*/