本文主要是介绍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));}
}
这篇关于java BigInteger 对权限进行2的权的和计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!