Java常用API(BigInteger)

智多星V+TNY264278
• 阅读 481

在Java中,整数有四种类型:byte,short,int,long

在底层占用字节个数:byte 1个字节,short2个字节,int 4个字节,long 8个字节

对象一旦创建,里面的值是不能改变的。

1.随机获取一个最大整数

Random r = new Random();

for(int i = 0 ; i < 100 ; i ++){ BigInteger bd1 = new BigInteger(4,r);

System.out.println(bd1);[0~2^4-1]

}

2.获取一个指定的大整数 细节:字符串中必须是整数,否则会报错BigInteger bd2 = new BigInteger("1.1");System.out.println(bd2);

BigInteger bd3 = new BigInteger("abc");System.out.println(bd3);

3.获取指定进制的大整数

细节: 1.字符串中的数字必须是整数//2.字符串中的数字必须要跟进制吻合。//比如二进制中,那么只能写@和1,写其他的就报错。

BigInteger bd4 = new BigInteger("123",2)System.out.println(bd4);

4.静态方法获取BigInteger的对象,内部有优化细节:

1.能表示范围比较小,只能在1ong的取值范围之内,如果超出1ong的范围就不行了。

2.在内部对常用的数字:-16 ~ 16 进行了优化。提前把-16 ~ 16 先创建好BigInteger的对象,如果多次获取不会重新创建新的。

BigInteger bd5 = BigInteger.valueOf(16);BigInteger bd6= BigInteger.valueOf(16);

System.out.println(bd5 == bd6);//true

BigInteger bd7= BigInteger.valueOf(17);BigInteger bd8=BigInteger.valueOf(17);

System.out.println(bd7 == bd8);//false

方法小结 1.如果Big Integer表示的数字没有超出long的范围,可以用静态方法获取

2.如果Big Integer表示的超出long的范围,可以用构造方法获取

3.对象一旦创建,BigInteger内部记录的值就不会改变

4.只要进行计算都会产生一个新的BigInter对象

常用方法 public BigInteger add(BigInteger val) 加法

public BigInteger subtract(BigInteger val) 减法

public BigInteger multiply(BigInteger val) 乘法

public BigInteger divide(BigInteger val) 除法

public BigInteger[]divideAndRemainder(BigInteger val) 获取商除法

publicboolean equals(object x) 获取商和余数比较是否相同

publicBigInteger pow(int exponent) 次幂

publicBigInteger max/min(BigIntegerval) 返回较大值/较小值转为int类型整数

publicint intValue(BigInteger val) 超出范围数据有误

了解更多跨境独立站电商代购系统和国内外电商API,可以私信或评论区交流 ,感谢你的关注。

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
java四类八种基本类型
整型byte字节型short短整型int            普通整型long长整型浮点型float        单精度double    双精度逻辑型boolean 只有true或者false两个值字符型char字符型
Wesley13 Wesley13
3年前
java面试基本数据类型考点
1、java中,有4个基本类型:byte、short、int、long2、类型范围计算公式:\(2bit1)——(2bit1)1【1byte8bit】(字节(Byte发音:/‘bait/):字节是通过网络传输(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fbaike.ba
Wesley13 Wesley13
3年前
java的八种基本数据类型
一、写在前面为什么要记录这个随笔呢,主要是因为老是把short类型遗忘。二、Java的八种基本数据类型1.四种整数类型(byte、short、int、long):byte:8位、有符号。最小值是128(2^7)、最大值是 127(2^71)、默认值是0;bytea100short:16位、有符号。最小值是 \32768
Stella981 Stella981
3年前
Python Challenge Level 18
初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00
Wesley13 Wesley13
3年前
2.C++中的bool类型,三目运算符,引用
本章主要内容:1)bool类型2)三目运算符3)引用1.布尔型bool在C中,bool类型只有true(非0)和flase(0)两个值,且bool类型只占用了一个字节.例如:include<stdio.h
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
C语言位运算
一、掩码运算1.什么是掩码?计算机中最小的单位是字节,一个字节代表8个二进制位。在实际的应用中许多信息并不需要使用一个字节来表示。例如表示当前系统运行是否正常,这种标志的取值只有0和1两种。因此使用是个完整的字节保存该标志就很浪费了。这些标志为是以位的形式存储的,因此当需要提取这些标志位的时候就需要使用掩码。掩码是人为生成的整数值,
Stella981 Stella981
3年前
JVM 字节码指令表
字节码助记符指令含义0x00nop什么都不做0x01aconst\_null将null推送至栈顶0x02iconst\_m1将int型1推送至栈顶0x03iconst\_0将int型0推送至栈顶0x04iconst\_1将int型1推送至栈顶0x05ic
Stella981 Stella981
3年前
JVM基础命令
介绍java虚拟机的指令功能,至少能阅读java代码生成的字节码指令含义一、概述Java虚拟机采用基于栈的架构,其指令由操作码和操作数组成。操作码:一个字节长度(0~255),意味着指令集的操作码个数不能操作256条。操作数:一条指令可以有零或者多个操作数,且操作数可以是1个或者多个字节。编译后的代码没有采用操作数