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

packagecom.fh.util;

importjava.math.BigInteger;

/**
*说明:权限计算帮助类
*作者:FHAdmin
*官网:fhadmin.cn
*/
publicclassRightsHelper{
/**
*利用BigInteger对权限进行2的权的和计算
*@paramrightsint型权限编码数组
*@return2的权的和
*/
publicstaticBigIntegersumRights(int[]rights){
BigIntegernum=newBigInteger("0");
for(inti=0;i<rights.length;i++){
num=num.setBit(rights[i]);
}
returnnum;
}
/**
*利用BigInteger对权限进行2的权的和计算
*@paramrightsString型权限编码数组
*@return2的权的和
*/
publicstaticBigIntegersumRights(String[]rights){
BigIntegernum=newBigInteger("0");
for(inti=0;i<rights.length;i++){
num=num.setBit(Integer.parseInt(rights[i]));
}
returnnum;
}

/**
*测试是否具有指定编码的权限
*@paramsum
*@paramtargetRights
*@return
*/
publicstaticbooleantestRights(BigIntegersum,inttargetRights){
returnsum.testBit(targetRights);
}

/**
*测试是否具有指定编码的权限
*@paramsum
*@paramtargetRights
*@return
*/
publicstaticbooleantestRights(Stringsum,inttargetRights){
if(Tools.isEmpty(sum))
returnfalse;
returntestRights(newBigInteger(sum),targetRights);
}

/**
*测试是否具有指定编码的权限
*@paramsum
*@paramtargetRights
*@return
*/
publicstaticbooleantestRights(Stringsum,StringtargetRights){
if(Tools.isEmpty(sum))
returnfalse;
returntestRights(newBigInteger(sum),targetRights);
}

/**
*测试是否具有指定编码的权限
*@paramsum
*@paramtargetRights
*@return
*/
publicstaticbooleantestRights(BigIntegersum,StringtargetRights){
returntestRights(sum,Integer.parseInt(targetRights));
}
}

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,请读者仅作参考,并自行核实相关内容。如发现有害或侵权内容,请联系邮箱:jubao@pinlue.com,我们将在第一时间进行核实处理。

http://image95.pinlue.com/image/31.jpg
分享
评论
首页