java中,想利用二进制位如“1111”来表示事物的状态:
public class BinaryStatusUtil {
public static int setStatus(int originalStatus, int bitPosition) {
return originalStatus | (1 << bitPosition);
}
public static int clearStatus(int originalStatus, int bitPosition) {
return originalStatus & ~(1 << bitPosition);
}
public static boolean checkStatus(int originalStatus, int bitPosition) {
return (originalStatus & (1 << bitPosition)) != 0;
}
}
使用举例:
public class Main {
public static void main(String[] args) {
int status = 0b0000; // Initial status
// Set bit at position 1
status = BinaryStatusUtil.setStatus(status, 1);
System.out.println("Status after setting bit 1: " + Integer.toBinaryString(status));
// Check bit at position 1
boolean isBitSet = BinaryStatusUtil.checkStatus(status, 1);
System.out.println("Is bit 1 set? " + isBitSet);
// Clear bit at position 1
status = BinaryStatusUtil.clearStatus(status, 1);
System.out.println("Status after clearing bit 1: " + Integer.toBinaryString(status));
}
}
打印结果:
Status after setting bit 1: 10
Is bit 1 set? true
Status after clearing bit 1: 0