有关java中大整型BigInteger的setBit()和testBit()方法的使用

有关java中大整型BigInteger的setBit()和testBit()方法的使用_第1张图片


前言:

因在项目中使用到了权限校验的问题,代码中出现了BigInteger的setBit()和testBit()方法,之前未接触过,度娘后也没有找到详细的介绍,基本都是在复制粘贴官方API文档的描述。

故,分享一下,也是为防止遗忘。


一、setBit()方法的使用:

setBit(int n)  ==》BigInteger java.math.BigInteger.setBit(int n)

可以看出,此方法接收的是一个“int类型的n”,该n为指数,即得出的结果为2的n次幂

多次使用此方法,会累加BigInteger 类型 变量 中的数。

如下:

BigInteger  big  = new BigInteger("0");    //0可以是任意数

big= big.setBit(2);                                    //2的2次幂

big= big.setBit(4);                                    //2的4次幂

big= big.setBit(7);                                    //2的7次幂

System.out.println(big);                           //输出==》2的2次幂+2的4次幂+2的7次幂=148



二、testBit()方法的使用:

testBit(int n)  ==》boolean java.math.BigInteger.testBit(int n)

可以看出,此方法接收的是一个“int类型的n”,该n为指数,即得出的结果为2的n次幂(与上方一致)

但,此方法“返回boolean 类型”,作用为,【判断BigInteger 类型 变量中的数是否有testBit()参数中的n次幂,即是否有2的n次幂】

有,则返回true,无,则返回false

如下:

BigInteger big= new BigInteger("148");                    //这次我们直接给个148

boolean bigBool_1 = big.testBit(2);                          //判断148中是否存在2的2次幂

boolean bigBool_2 = big.testBit(4);                          //判断148中是否存在2的4次幂

boolean bigBool_3 = big.testBit(7);                           //判断148中是否存在2的7次幂

System.out.println(bigBool_1);                                  //true

System.out.println(bigBool_2);                                  //true

System.out.println(bigBool_3);                                  //true



三、上一个完整的案例:


package testTest;

import java.math.BigInteger;

public class test {

public static void main(String[] args) {


BigInteger num = new BigInteger("0");     //这次我们给的是0

num = num.setBit(2);

num = num.setBit(4);

num = num.setBit(7);

System.out.println(num);                          //输出==》2的2次幂+2的4次幂+2的7次幂=148

boolean numBool_1 = num.testBit(2);     //判断148中是否存在2的2次幂

boolean numBool_2 = num.testBit(4);     //同上

boolean numBool_3 = num.testBit(7);     //同上

System.out.println(numBool_1);              //true

System.out.println(numBool_2);              //true

System.out.println(numBool_3);             //true

}

}


四、完结

你可能感兴趣的:(有关java中大整型BigInteger的setBit()和testBit()方法的使用)