Int 整数类型的位操作变换类
/**
* Int整数类型的位操作变换类
*/
public class OperateIntBit {
public static final int ONE = 1;
public static final int ZERO = 0;
/**
* int值的二进制位 01变换
*
* @param val 操作值
* @param bit 操作位
* @param type 操作类型
* @return 计算后的值
*/
public static int operateBinaryInt(int val, int bit, int type) {
switch (type) {
case ONE:
return operateBinaryIntOne(val, bit);
case ZERO:
return operateBinaryIntZero(val, bit);
default:
return val;
}
}
/**
* 将int值的二进制位变为0
*
* @param val 操作值
* @param bit 操作位
* @return 计算后的值
*/
public static int operateBinaryIntZero(int val, int bit) {
// 位变0
return ~(~val | 1 << bit);
}
/**
* 将int值的二进制位变为1
*
* @param val 操作值
* @param bit 操作位
* @return 计算后的值
*/
public static int operateBinaryIntOne(int val, int bit) {
// 位变1
return val | 1 << bit;
}
/**
* int值的二进制中,位上是否为1
*
* @param val 操作值
* @param bit 操作位
* @return 如果位值是1,则返回True,否则为False
*/
public static boolean isOne(int val, int bit) {
return (val & (1 << bit)) > 0;
}
}