自学内容网 自学内容网

java实现位运算

文章目录


是这样,打算实现位运算的功能,代码和mapper都要改,这里先记录下java部分。

/*
 * 位运算工具
 */
@Slf4j
public class BitUtils {
    public static List qualificationList = new ArrayList();
    static{
        qualificationList.add(0); // 1
        qualificationList.add(1); // 2
        qualificationList.add(2); // 4
        qualificationList.add(3); // 8
        qualificationList.add(4); // 16
    }

    public static void main(String[] args) {
        Integer[] queryArr={1,3};
        List<Integer> queryList = Arrays.asList(queryArr);
        Integer qualificationMask=(2<<(qualificationList.size()-1))-1; // 掩码 全部都置1
        log.info("qualificationMask={}",qualificationMask);

        Integer dbQuery=0;
        // 传给数据库的入参需要转换为10进制
        for (int i = 0; i < queryList.size(); i++) {
            dbQuery=dbQuery+(1<<queryList.get(i));
        }

        log.info("dbQuery={}",dbQuery);

        Integer dbResult=0;
        // 十进制 转换为2进制逗号分隔
        String binString = Integer.toString(dbResult, 2);
        log.info("binString={}",binString);
        char[] chars = binString.toCharArray();

        List<Integer> frontList = Arrays.asList(queryArr);
        // 只能要为1的
        for (int i = 0; i < chars.length; i++) {
            if(1==chars[i]){
                frontList.add(i);
            }
        }
        log.info("frontList={}", JSON.toJSONString(frontList));
    }

}


原文地址:https://blog.csdn.net/enthan809882/article/details/145078758

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!