BigInteger用法的详解

•                       int A=42;
•                       BigInteger f=BigInteger.valueOf(A);
•                       System.out.println("f="+f); //输出的f将会等于BigInteger型的42
•                        // 答案: f=42

value.Of(参数); 这个函数的作用是将括号内的参数转换成指定的数据类型,例如以下例子

add()方法; 这个函数的作用是将大整数加起来,例如以下例子 

subtract()方法,这个函数的作用是将大整数相减,例如以下例子,运用时前者减后者 

multiply()方法,这个函数的作用是将大整数相乘,例如以下例子, 

multiply()方法,这个函数的作用是将大整数相乘,例如以下例子, 

⑥remainder()方法,这个函数的作用是将大整数取余

⑦pow(exponent)方法,这个函数的作用是将大整数取exponent的指数,例如a.pow(b)==a^b;

⑧gcd()方法,这个函数的作用是将两个大整数取最大公约数,例如a.gcd(b);

⑨abs()方法,这个函数的作用是取绝对值,例如

mod()方法; 这个函数的作用是对数进行取余 a.mod(b)=a%b=a.remainder(b);

⑫max()方法,min()方法,分别是比较两个数的大小,例如a.max(b); 取a,b中的最大值

⑬compareTo()方法这个方法是用来比较两个大整数大小的

//之前是支持-1和2,但现在表明已不再输出(Not exported.)
public void test() {
    //0
    BigInteger zero = BigInteger.ZERO;
    //1
    BigInteger one = BigInteger.ONE;
    //10
    BigInteger ten = BigInteger.TEN;
}

setBit(),testBit():可用于菜单的权限控制,非常好用,原理如下:

setBit():将set进去变量作为二进制数,计算它们的和,并以十进制显示; testBit():与setBit()相反,验证this的二进制组成元素中是否包含传入的变量;

//权限控制:setBit(),testBit()
@Test
public void testSetAndTest() {
    //1.封装数据(setBit的值需 >= 0,否则出现异常:ArithmeticException("Negative bit address"))
    BigInteger permission = new BigInteger("0");
    BigInteger numBig = permission.setBit(2);
    numBig = numBig.setBit(5);
    numBig = numBig.setBit(13);
    numBig = numBig.setBit(66);
    System.out.println("原理:" + numBig); 
    // 原理:73786976294838214692 = 2^2+2^5+2^13+2^66 次方的和;
    // 看!!即使这么大的数也不会溢出,而int最大值只有2147483647;
​
    //2.取值验证(返回Boolean型)
    boolean flag1 = numBig.testBit(2);      //true
    boolean flag2 = numBig.testBit(5);      //true
    boolean flag3 = numBig.testBit(13);     //true
    boolean flag4 = numBig.testBit(66);     //true
    boolean flag5 = numBig.testBit(27);     //false
}

 

你可能感兴趣的:(java,开发语言)