java BigInteger 对权限进行2的权的和计算-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

java BigInteger 对权限进行2的权的和计算

简介: java BigInteger 对权限进行2的权的和计算
package com.fh.util;
import java.math.BigInteger;
/**
 * 说明:权限计算帮助类
 * 作者:FH Admin
 * 官网:fhadmin.cn
 */
public class RightsHelper {
    /**
     * 利用BigInteger对权限进行2的权的和计算
     * @param rights int型权限编码数组
     * @return 2的权的和
     */
    public static BigInteger sumRights(int[] rights){
        BigInteger num = new BigInteger("0");
        for(int i=0; i<rights.length; i++){
            num = num.setBit(rights[i]);
        }
        return num;
    }
    /**
     * 利用BigInteger对权限进行2的权的和计算
     * @param rights String型权限编码数组
     * @return 2的权的和
     */
    public static BigInteger sumRights(String[] rights){
        BigInteger num = new BigInteger("0");
        for(int i=0; i<rights.length; i++){
            num = num.setBit(Integer.parseInt(rights[i]));
        }
        return num;
    }
    
    /**
     * 测试是否具有指定编码的权限
     * @param sum
     * @param targetRights
     * @return
     */
    public static boolean testRights(BigInteger sum,int targetRights){
        return sum.testBit(targetRights);
    }
    
    /**
     * 测试是否具有指定编码的权限
     * @param sum
     * @param targetRights
     * @return
     */
    public static boolean testRights(String sum,int targetRights){
        if(Tools.isEmpty(sum))
            return false;
        return testRights(new BigInteger(sum),targetRights);
    }
    
    /**
     * 测试是否具有指定编码的权限
     * @param sum
     * @param targetRights
     * @return
     */
    public static boolean testRights(String sum,String targetRights){
        if(Tools.isEmpty(sum))
            return false;
        return testRights(new BigInteger(sum),targetRights);
    }
    
    /**
     * 测试是否具有指定编码的权限
     * @param sum
     * @param targetRights
     * @return
     */
    public static boolean testRights(BigInteger sum,String targetRights){
        return testRights(sum,Integer.parseInt(targetRights));
    }
}

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章