BigInteger的使用

简介: BigInteger的使用

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的进制转换



7c2c40f1cfa540c8b19d8499d8d7b391.png

十进制转二级制
     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 



目录
相关文章
|
消息中间件 SQL JSON
自建MQTT迁移阿里云物联网平台指南
2020年是5G大规模商用的元年,使用阿里云物联网平台在产业爆发前打造一套安全可靠的业务架构,更能解放人力专注业务开发!
16261 0
|
机器学习/深度学习 人工智能 安全
人类进化新时代,DARPA 的「靶向神经可塑性训练」为何如此重要?
在4 月 8 号机器之心的文章 (前沿 | 疯狂科学家!DARPA 颅内芯片研究项目即将启动)文章中,机器之心PSI 小伙伴吴航首先为我们介绍了 DARPA 的历史和技术。在本篇(后篇)文章中,他详细介绍了 DARPA 正式发布的 TNT 项目。
1529 0
人类进化新时代,DARPA 的「靶向神经可塑性训练」为何如此重要?
|
人工智能 算法 架构师
专访季爱军:得物 App 是如何在两年内就成果落地端智能的?
在移动设备硬件能力不断升级的时代下,我们见证了端侧技术日新月异的迭代。现在,我们不仅能在传统 iOS、安卓技术体系下开发移动 App,还能在端智能、AR/VR、音视频、跨端等技术方向上不断优化 App 产品。2021 年得物 App 依托丰富的业务场景,不断进行技术创新,在端侧智能上取得了不错的业务结果,因此我们邀请了得物 App 无线技术总监 季爱军(Alpha),他也是 ArchSummit 全球架构师峰会(上海)【移动端开发技术实践】专题的出品人,请他分享得物 App 端侧智能化的经验。
803 0
专访季爱军:得物 App 是如何在两年内就成果落地端智能的?
|
图形学
Unity Shader Graph 制作 Fade 淡入淡出效果
Unity Shader Graph 制作 Fade 淡入淡出效果
843 1
Unity Shader Graph 制作 Fade 淡入淡出效果
|
Oracle Java 关系型数据库
linux contos 安装oracle jdk1.8 教程
手把手教你如何在centos系统上安装jdk1.8
901 0
linux contos 安装oracle jdk1.8 教程
|
缓存 数据库 对象存储
阿里云服务器1M带宽速度快吗?可以支持多少访问量?
本文介绍了阿里云服务器1M带宽下载与访问速度情况以及可以支持多少访问量等。
1096 0
阿里云服务器1M带宽速度快吗?可以支持多少访问量?
|
SQL 设计模式 安全
如何有效预防XSS?这几招管用!!!
如何有效预防XSS?这几招管用!!!
如何有效预防XSS?这几招管用!!!
|
存储 资源调度 Cloud Native
阿里云数据迁移工具解决方案:华为云迁移到阿里云
阿里云数据迁移工具解决方案:华为云迁移到阿里云
阿里云数据迁移工具解决方案:华为云迁移到阿里云
|
开发工具 git
git push error: failed to push some refs to异常处理
git push error: failed to push some refs to异常处理
503 0