Java常用API(BigInteger)

在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,可以私信或评论区交流 ,感谢你的关注。

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

java四类八种基本类型

整型byte字节型short短整型int            普通整型long长整型浮点型float        单精度double    双精度逻辑型boolean 只有true或者false两个值字符型char字符型

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

java的八种基本数据类型

一、写在前面为什么要记录这个随笔呢,主要是因为老是把short类型遗忘。二、Java的八种基本数据类型1.四种整数类型(byte、short、int、long):byte:8位、有符号。最小值是128(2^7)、最大值是 127(2^71)、默认值是0;bytea100short:16位、有符号。最小值是 \32768

Python Challenge Level 18

初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00