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


前言:

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

}

}


四、完结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,550评论 18 399
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,542评论 0 41
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,955评论 0 2
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 3,952评论 0 0
  • 汾河夜粼粼, 亭阁散金光。 抬头望弯月, 雨后清风爽。
    莲台齐缘阅读 1,567评论 12 10

友情链接更多精彩内容