Int整数类型的位操作变换类

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;
    }

}

你可能感兴趣的:(Int整数类型的位操作变换类)