我是靠谱客的博主 大胆热狗,最近开发中收集的这篇文章主要介绍BigInteger和Integer和BigDecimal区别和进制转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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区别和进制转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部