java中的大数处理-BigInteger和BigDecimal

【转】JAVA大数处理(BigInteger,BigDecimal)
转自:http://hi.baidu.com/shouzhewei/item/ad630c7261c44418d0dcb312

在用C或者C++处理大数时感觉非常麻烦,但是[color=red]在JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大[/color]。
这两个类都在java.math.*包中,因此每次必须在开头处引用该包。

Ⅰ基本函数:
1.valueOf(parament); 将参数转换为制定的类型
比如 int a=3;
BigInteger b=BigInteger.valueOf(a);
则b=3;
String s=”12345”;
BigInteger c=BigInteger.valueOf(s);
则c=12345;
2.add(); 大整数相加
BigInteger a=new BigInteger(“23”);
BigInteger b=new BigInteger(“34”);
a.add(b);
3.subtract(); 相减
4.multiply(); 相乘
5.divide(); 相除取整
6.remainder(); 取余
7.pow(); a.pow(b)=a^b
8.gcd(); 最大公约数
9.abs(); 绝对值
10.negate(); 取反数
11.mod(); a.mod(b)=a%b=a.remainder(b);
12.max(); min();
13.punlic int comareTo();
14.boolean equals(); 是否相等
15.BigInteger构造函数:
一般用到以下两种:
BigInteger(String val);
将指定字符串转换为十进制表示形式;
BigInteger(String val,int radix);
将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger
Ⅱ.基本常量:
A=BigInteger.ONE 1
B=BigInteger.TEN 10
C=BigInteger.ZERO 0
Ⅲ.基本操作
1. 读入:
用Scanner类定义对象进行控制台读入,Scanner类在java.util.*包中
Scanner cin=new Scanner(System.in);// 读入
while(cin.hasNext()) //等同于!=EOF
{
int n;
BigInteger m;
n=cin.nextInt(); //读入一个int;
m=cin.BigInteger();//读入一个BigInteger;
System.out.print(m.toString());
}
Ⅳ.运用
四则预算:
import java.util.Scanner;
import java.math.*;
import java.text.*;
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner ( System.in );
BigInteger a,b;
int c;
char op;
String s;

while( cin.hasNext() )
{
a = cin.nextBigInteger();
s = cin.next();
op = s.charAt(0);
if( op == '+')
{
b = cin.nextBigInteger();
System.out.println(a.add(b));
}
else if( op == '-')
{
b = cin.nextBigInteger();
System.out.println(a.subtract(b));
}
else if( op == '*')
{
b = cin.nextBigInteger();
System.out.println(a.multiply(b));
}
else
{
BigDecimal a1,b1,eps;
String s1,s2,temp;
s1 = a.toString();
a1 = new BigDecimal(s1);
b = cin.nextBigInteger();
s2 = b.toString();
b1 = new BigDecimal(s2);
c = cin.nextInt();
eps = a1.divide(b1,c,4);
//System.out.println(a + " " + b + " " + c);
//System.out.println(a1.doubleValue() + " " + b1.doubleValue() + " " + c);
System.out.print( a.divide(b) + " " + a.mod(b) + " ");
if( c != 0)
{
temp = "0.";
for(int i = 0; i < c; i ++) temp += "0";
DecimalFormat gd = new DecimalFormat(temp);
System.out.println(gd.format(eps));
}
else System.out.println(eps);
}
}
}
}
补充:
a=a.pow(b);
a=a.stripTrailingZeros();
d=a.toPlainString();
if(d.charAt(0)=='0') d=d.substring(1);
Arduino 系列:Arduino Due 系列 (基于 ATSAM3X8E)_(5).电源管理与电压调节 电源管理与电压调节是确保嵌入式系统稳定性可靠性的关键环节。通过合理选择电源输入方式、使用高效的电压调节器、设计适当的滤波电路实施动态电源管理,可以有效提高系统的性能寿命。同时,使用电源调试工具编写调试代码,可以帮助开发者及时发现解决问题。希望本文档能为使用 Arduino Due 的开发者提供有用的信息指导。 阅读详情

相关推荐

《AgentScope-Java 深入浅出教程》第2章 环境搭建与第一个智能体

创建// 【导入说明】/*** 时间相关工具类* 工具类是普通的 Java 类,通过注解声明为工具。* 智能体可以根据用户需求自动调用这些工具。*/// 【工具定义】获取当前时间@Tool(name = "get_current_time", // 工具名称:LLM 看到的名称description = "获取指定时区的当前时间" // 工具描述:帮助 LLM 理解何时使用// 【参数定义】// @ToolParam 的 name 属性是必需的!

步子哥的博客 395

java大数

import java.math.*; class ExampleBiginteger {    public static void main(String args[])    {   BigInteger n1=new BigInteger("987654321987654321987654321"),                   n2=new BigInteger("12

Cache29147的专栏 1091

39页WORD-工业级无人机环保行业应用通用方案.docx

39页WORD-工业级无人机环保行业应用通用方案.docx

Java大整数处理BigInteger

Java处理一些大数的时候,提供了BigInteger类供我们使用,十分的方便,下面写一个简单的demo,用来演示大数java里面的加减乘除: import java.math.BigInteger; public class Hello { public static void main(String[] args) { //将一个字符串转换成Bi...

mrtwenty的博客 811

java 中如何处理大整数-java.BigInteger的使用

来源:http://blog.csdn.net/licongcong_0224/article/details/11137933当一个数字非常大时,则肯定无法用基本类型接收,所以最早碰到大数字时往往会使用String类进行接收,然后再采用String类进行接收,然后再采用拆分的方式进行计算,但操作非常麻烦,所以在Java中为了解决这样的难题提供了BigInteger类。BigInteger类表示大整

fengfeng043的专栏 4249

java处理大数——BigInteger

一、BigInteger介绍 如果在操作的时候一个整型数据已经超过了整数的最大类型长度 long 的话,则此数据就无法装入,所以,此时要使用 BigInteger 类进行操作。这些大数都会以字符串的形式传入。 BigInteger 相比 Integer 的确可以用 big 来形容。它是用于科学计算,Integer 只能容纳一个 int,所以,最大值也就是 2 的 31 次访减去 1,十进制为 21...

程序员世杰 1万+

java BigIntegerBigDecimal类(处理高精度整数、小数)

java BigIntegerBigDecimal类 (处理高精度整数、小数)

weixin_46879396的博客 1027

JAVA大数处理(BigInteger,BigDecimal)

<br /> JAVA大数处理(BigInteger,BigDecimal)<br /><br />     在用C或者C++处理大数时感觉非常麻烦,但是在JAVA中有两个类BigIntegerBigDecimal分别表示大整数类大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大。<br />这两个类都在java.math.*包中,因此每次必须在开头处引用该包。<br /> <br />Ⅰ基本函数:<br />1.valueOf(parament);将参数转

hqd_acm的专栏 3万+

JAVA - JAVA大数处理BigIntegerBigDecimal

https://blog.csdn.net/hqd_acm/article/details/5751686

bupa900318的博客 1909

处理大数Java API之BigIntegerBigDecimal

当我们遇到很大的一串数字的时候用long就放不开了,于是Java有一个API叫BigIntegerBigDecimal可以很方便的用来处理很长的数字。 可以使用BigInteger操作大整数 整数 可以使用BigDecimal指定小数的保留位数 小数 BigInteger 首先我们来看一下BigInteger的一些常用方法,如下面代码所示,代码中的注释详尽的介绍了它的用法 package cn.shi; import java.math.BigInteger; public class Test

Go Tum's Bolg 244

java大数bigdecimal,JAVA大数处理(BigInteger,BigDecimal)

Java中有两个类BigIntegerBigDecimal分别表示大整数类大浮点数类。这两个类都在java.math.*包中,因此每次必须在开头处引用该包。Ⅰ基本函数:1.valueOf(parament);//将参数转换为制定的类型2.add(); //大整数相加3.subtract(); //相减4.multiply(); //相乘5.divi...

weixin_42352453的博客 289

java中的大整数类BigInteger处理大整数——小小钟

在很多时候,我们都要处理很大的整数,在java中有一个专门处理大整数的类BigInteger 我用个例子来说说:/* 1^1+2^2+3^3+4^4+...+1000^1000的后10位数 */ import java.math.BigInteger; public class Test01 { public static void main(String[] args) { tes

xxzblog的专栏 926

java 大整数运算以及BigInteger的用法

大整数相加 给出四个可能会很大的数,求; 代码:import java.io.*; import java.math.BigInteger; import java.util.*;public class Main2 { public static void main(String[] args) { // TODO Auto-generated method stub

wuxiaowu547的博客 2461

大整数类BigInteger

算法竞赛入门经典(第2版) 第5章C++与STL入门 大整数类BigInteger 跟踪调试后的感悟。 1、=(long long num)该赋值方式实际运用价值不大,输入数据一长容易越界。=(const string&amp; str)赋值方式极具实用价值,只要string不越界,就可以处理该整数。 2、将大整数分块处理,BASE=100000000,WIDTH=8,每八位数为一个单元,...

mrcrack的博客 8336

大整数运算 (java BigInteger类)

java大整数类的运算常常包括:加、减、乘、除,求余数、比较大小、高精度幂、max()函数,min()函数,abs()函数,gcd()函数等等。当我们遇到这类问题时用C或C++解决起来会觉得很麻烦(不过还是要尽量掌握),而java则给我们提供了非常方便的BigInteger类(大整数类)。 import java.util.Scanner; import java.math.*; public

lucas的博客 1090

处理大整数

利用BigInteger类提供的任意精度的整数计算,实现大整数之间的加减乘除算法,同时求出给定的大整数因子。

qq_58251465的博客 930
上一篇: Swt编程中的HelloWorld (转)
下一篇: BigDecimal示例及String处理大数据
yimenghust
博客等级 码龄16年 0粉丝 16原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值