打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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));
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
IntelliJ IDEA 14 注册码
C# RSA和Java RSA互通
N个自然数的全排列问题
Java基础:Java操作日期的工具类总结
Linux内核module
Date与String之前的转化问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服