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

734eca571be6

前言:

因在项目中使用到了权限校验的问题,代码中出现了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

}

}

四、完结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值