zoukankan      html  css  js  c++  java
  • 位运算--通过总值分解出子值(解析子值)

    通过总值分解出子值

    在做权限时管理时,会经常用到位运算。我们怎么通过一个杼总值分解出各个权限值呢?

    思路如下:将10进制的数值转换为2进制字符串,循环字符串各位置的值,遇到值为『1』时,则将后面的位置补『0』同时将2进数值转为10进制数。

    public List<Integer> getChildNum(int totalVal) {
        int itemVal;
        String binaryValStr = Integer.toBinaryString(totalVal);
        List<Integer> list = new ArrayList<>();
        StringBuilder sbNum = new StringBuilder();
        for (int i = binaryValStr.length() - 1; i >= 0; --i) {
            if (binaryValStr.charAt(i) == '1') {
                itemVal = Integer.parseInt("1" + sbNum.toString(), 2);
                list.add(itemVal);
            }
            sbNum.append('0');
        }
        return list;
    }
    
  • 相关阅读:
    poj2955(区间dp)
    poj3280(区间dp)
    poj1651(区间dp)
    hdu5001(概率dp)
    hdu4389(数位dp)
    hdu4352(数位dp)
    CF 148D(概率dp)
    zoj3329(概率dp)
    POJ1028 Web Navigation
    POJ1027 The Same Game
  • 原文地址:https://www.cnblogs.com/pengei/p/7977013.html
Copyright © 2011-2022 走看看