概述
BigInteger:
取值范围:无限制
重要方法:BigInteger.valueOf()
new BigInteger():里面是String类型
BigInteger.ZERO/ONE/TEN : 相当于valueOf(xxx)
还可以进行进制转换
public void testToAnother() {
BigInteger bigNum = new BigInteger("52");
int radix = 2;
//1.转换为bigNum的二进制补码形式
byte[] num1 = bigNum.toByteArray();
//2.转换为bigNum的十进制字符串形式
String num2 = bigNum.toString(); //52
//3.转换为bigNum的radix进制字符串形式
String num3 = bigNum.toString(radix); //110100
//4.将bigNum转换为int
int num4 = bigNum.intValue();
//5.将bigNum转换为long
long num5 = bigNum.longValue();
//6.将bigNum转换为float
float num6 = bigNum.floatValue();
//7.将bigNum转换为double
double num7 = bigNum.doubleValue();
}
(9条消息) JAVA 进制转换的几个方法_过道的博客-CSDN博客_java进制转换
package 练习;
import java.math.BigDecimal;
import java.math.BigInteger;
/**
* @author diao 2022/3/18
*/
public class test01 {
public static void main(String[] args) {
// Integer a=1;
// for(Integer i=0;i<32;i++){
// a=a*2;
// }
// System.out.println(a);
// BigDecimal bigDecimal = new BigDecimal(BigInteger.valueOf(10000000000000), 5);
Long a= Long.valueOf(1);
BigInteger a1= BigInteger.valueOf(a);
for(int i=0;i<32;i++){
a=a*2;
}
System.out.println("long:"+a);
System.out.println("-----------");
cal(2,32);
}
public static void cal(int a,int n){
BigInteger one = BigInteger.ONE;
for(int i=0;i<n;i++){
one = one.multiply(BigInteger.valueOf(a));
}
System.out.println("BigInteger:"+one);
}
}
Integer:
取值范围:-2^31 ~ 2^31-1
BigDecimal:
BigDecimal的实现用到了BigInteger,但是它还增加了小数的概念,相比之下,精度不易丢失
BigDecimal d = new BigDecimal(new BigInteger(ib),5);
5表示5个小数位;
参数是BigDecimal(值)、小数、小数执行
BigDecimal divide = new BigDecimal(-7.5).divide(new BigDecimal(4), 1, BigDecimal.ROUND_HALF_UP);
总结:
1、BigInteger可以表示任意大小的整数,但是当BigInteger的值超过基本类型的接收上限时,会发生精度丢失;
2、Integer可以理解为容纳一个int
最后
以上就是大胆热狗为你收集整理的BigInteger和Integer和BigDecimal区别和进制转换的全部内容,希望文章能够帮你解决BigInteger和Integer和BigDecimal区别和进制转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复