BigInteger的使用

目录

1.什么时候使用BigInteger

2.怎样使用BigInteger 

3.BigInteger的常用方法

4.toString的进制转换


1.什么时候使用BigInteger

BigInteger是不可变的任意精度整数

当你要使用的整数  大于Java中提供的整形数据最大范围64位的long型整数  时,就可以使用BigInteger来表示。

2.怎样使用BigInteger 

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        //1.通过输入来获取一个BigInteger
        BigInteger bigInteger=sc.nextBigInteger();
        //2字符串转数字(BigInteger)
        BigInteger bigInteger1=new BigInteger("1234");
        //4.将BigInteger转换为int
        int num1 = bigInteger.intValue();
        //5.将BigInteger转换为long
        long num2 = bigInteger.longValue();
        //6.将BigInteger转换为float
        float num3 = bigInteger.floatValue();
        //7.将BigInteger转换为double
        double num4 = bigInteger.doubleValue();
        //8讲BigInteger转换成十进制的字符串
        String s=bigInteger.toString();
        //9.将基本整数数据类型转换成BigInteger(会先将基本整数数据类型都转换成long类型再转换成BigInteger)
        byte a=100;
        BigInteger bigInteger2=BigInteger.valueOf(a);
        short b=1000;
        BigInteger bigInteger3=BigInteger.valueOf(b);
        int c=10000;
        BigInteger bigInteger4=BigInteger.valueOf(c);
        long d=100000;
        BigInteger bigInteger5=BigInteger.valueOf(d);
    }
}

3.BigInteger的常用方法

BigInteger add(BigInteger val) 返回两个大整数的和
BigInteger subtract(BigInteger val)返回两个大整数相减的结果
BigInteger multiply(BigInteger val) 返回两个大整数的积
BigInteger divide(BigInteger val)  返回两个大整数的商
BigInteger mod(BigInteger val)  用大整数对val求模
BigInteger remainder(BigInteger val) 返回大整数除以val的余数

BigInteger negate() 返回大整数的相反数
BigInteger abs()  返回大整数的绝对值
BigInteger pow(int n) 返回大整数的n次方

BigInteger and(BigInteger val)  返回两个大整数的按位与的结果
BigInteger or(BigInteger val) 返回两个大整数的按位或
BigInteger andNot(BigInteger val) 返回两个大整数与非的结果
BigInteger xor(BigInteger val) 返回两个大整数的异或的结果
BigInteger not() 返回当前大整数的按位非的结果

BigInteger gcd(BigInteger val)  返回大整数的最大公约数

BigInteger max(BigInteger val) 返回两个大整数的最大值
BigInteger min(BigInteger val) 返回两个大整数的最小值

BigInteger leftShift(int n) 将当前大整数左移n位后返回
BigInteger rightShift(int n) 将当前大整数右移n位后返回

byte[] toByteArray(BigInteger val)将大整数转换成二进制反码保存在byte数组中

int compareTo(BigInteger val) 结果为-1,0或1,因为BigInteger的数字小于等于或大于 val 。

 按位非:按位非运算符(~),反转操作数的位。 操作数被转换为32位二进制表示(0和1)。 超过32位的数字将丢弃其最高有效位。

int num1 = 123456;
int num2=-123456;
BigInteger bigInteger=BigInteger.valueOf(num1);
BigInteger bigInteger1=BigInteger.valueOf(num2) ;

System.out.println(bigInteger.not());  //-123457
System.out.println(bigInteger1.not()); //123455

4.toString的进制转换

十进制转二级制
     String s1 = new BigInteger("50", 10).toString(2); 
     System.out.println(s1);   //110010
十进制转八进制
     String s2 = new BigInteger("50", 10).toString(8);
     System.out.println(s2);   //62
十进制转十六进制
     String s3 = new BigInteger("50", 10).toString(16);
     System.out.println(s3);   //32
二进制转十进制
     String s4 = new BigInteger("110", 2).toString(10);
     System.out.println(s4);    //6
八进制转十进制
     String s5 = new BigInteger("120", 8).toString(10);
     System.out.println(s5);    //80
十六进制转十进制
     String s6 = new BigInteger("120", 16).toString(10);
     System.out.println(s6);    //288 

你可能感兴趣的:(Java笔记,java)