栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 小数(java大数类)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 小数(java大数类)

Java 大数BigInteger使用

由于在 Java中,在不使用大数的情况下,整数最大范围为long型(能够表示64位的整数),速度快 ,但是当运算超过long型的范围时,我们就需要用java.math.BigInteger(另外一个是java.math.BigDecimal,用于进行小数运算 )来表示任意大小的整数了,其内部用一个int[]数组来模拟一个非常大的整数

以下为BigInteger以及BigDecimal相关API介绍:


以下用一个例子来实现BigInteger:
**程序 :**将一个十六进制的字符串转换为十进制的字符串(支持输入多个字符串 )

未使用大数

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str ;
        int HEX = 16;
        while(sc.hasNext()){
            str = sc.nextLine();
            str = str.substring(2);
            int result = Integer.parseInt(str, HEX);
            System.out.println(result);
        }
    }
}

使用大数

import java.math.BigInteger;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str ;
        BigInteger HEX = new BigInteger("16");
        while(sc.hasNext()){
            str = sc.nextLine();
            str = str.substring(2);
            BigInteger result = new BigInteger("0");
            for(int i = 0; i < str.length(); i++){
                char ch = str.charAt(str.length()-1-i);
                if(ch >= 'A' && ch <= 'F'){
                    BigInteger tmp = HEX.pow(i).multiply(new BigInteger(Integer.toString((ch - 'A' + 10))));
                    result = result.add(tmp);
                }else{
                    BigInteger tmp = HEX.pow(i).multiply(new BigInteger(Character.toString(ch)));
                    result = result.add(tmp);
                }
            }
            System.out.println(result);
        }
    }
}

另外一种使用大数

import java.math.BigInteger;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str;
        int HEX = 16;
        while (sc.hasNext()) {
            str = sc.nextLine();
            str = str.substring(2);
        }
        System.out.println(new BigInteger(str, HEX));
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号