ACM与Java -- 大整数类的常用函数一览表
BigInteger abs() 此方法返回一个BigInteger,其值是此BigInteger的绝对值。 |
|
2 |
BigInteger add(BigInteger val) 此方法返回一个BigInteger,其值是(this + val). |
3 |
BigInteger and(BigInteger val) 此方法返回一个BigInteger,其值是 (this & val). |
4 |
BigInteger andNot(BigInteger val) 此方法返回一个BigInteger,其值是 (this & ~val). |
5 |
int bitCount() 此方法返回此BigInteger的二进制补码表示的位,从符号位不同的数字。 |
6 |
int bitLength() 此方法返回位在此BigInteger的最小的二进制补码表示的数,不包括符号位。 |
7 |
BigInteger clearBit(int n) 此方法返回一个BigInteger,其值相当于此BigInteger与指定位清零。 |
8 |
int compareTo(BigInteger val) 此方法比较此BigInteger与指定的BigInteger。 |
9 |
BigInteger divide(BigInteger val) 此方法返回一个BigInteger,其值是 (this / val). |
10 |
BigInteger[ ] divideAndRemainder(BigInteger val) 此方法返回一个包含两个BigIntegers:(this / val) 和 (this % val),其次是一个数组。 |
11 |
double doubleValue() 此方法此BigInteger转换为双精度double。 |
12 |
boolean equals(Object x) 此方法比较此BigInteger与指定对象是否相等。 |
13 |
BigInteger flipBit(int n) 此方法返回一个BigInteger,其值相当于此BigInteger与指定位翻转。 |
14 |
float floatValue() 此方法将BigInteger转换为float。 |
15 |
BigInteger gcd(BigInteger val) 此方法返回一个BigInteger,其值是绝对值的最大公约数:abs(this) 和abs(val)。 |
16 |
int getLowestSetBit() 此方法返回最右边的(最低阶)的索引在此BigInteger1比特(零比特的数量,以最右侧的1位的右侧)。 |
17 |
int hashCode() 此方法返回此BigInteger的哈希代码。 |
18 |
int intValue() 此方法此BigInteger转换为int。 |
19 |
boolean isProbablePrime(int certainty) 此方法返回true,如果此BigInteger是素数,其绝对复合数则返回false。 |
20 |
long longValue() 些方法将BigInteger转换为long。 |
21 |
BigInteger max(BigInteger val) 此方法返回此BigInteger和val的最大值。 |
22 |
BigInteger min(BigInteger val) 此方法返回此BigInteger和val的最小值。 |
23 |
BigInteger mod(BigInteger m) 此方法返回一个BigInteger,其值是(this mod m). |
24 |
BigInteger modInverse(BigInteger m) 此方法返回一个BigInteger,其值是 (this-1 mod m). |
25 |
BigInteger modPow(BigInteger exponent, BigInteger m) 此方法返回一个BigInteger,其值是 (thisexponent mod m). |
26 |
BigInteger multiply(BigInteger val) 此方法返回一个BigInteger,其值是 (this * val). |
27 |
BigInteger negate() 此方法返回一个BigInteger,其值是 (-this). |
28 |
BigInteger nextProbablePrime() 此方法返回一个整数大于该BigInteger的可能是素数。 |
29 |
BigInteger not() 此方法返回一个BigInteger,其值是 (~this). |
30 |
BigInteger or(BigInteger val) 此方法返回一个BigInteger,其值是 (this | val). |
31 |
BigInteger pow(int exponent) 此方法返回一个BigInteger,其值是(thisexponent). |
32 |
static BigInteger probablePrime(int bitLength, Random rnd) 此方法返回一个正BigInteger的可能是素数,以指定的bitLength。 |
33 |
BigInteger remainder(BigInteger val) 此方法返回一个BigInteger,其值是 (this % val). |
34 |
BigInteger setBit(int n) 此方法返回一个BigInteger,其值相当于此BigInteger与指定的位设置。 |
35 |
BigInteger shiftLeft(int n) 此方法返回一个BigInteger,其值是 (this << n). |
36 |
BigInteger shiftRight(int n) 此方法返回一个BigInteger,其值是 (this >> n). |
37 |
int signum() This method returns the signum function of this BigInteger. |
38 |
BigInteger subtract(BigInteger val) 此方法返回一个BigInteger,其值是 (this - val). |
39 |
boolean testBit(int n) 此方法返回当且仅当所指定的位被设置为真。 |
40 |
byte[ ] toByteArray() 此方法返回一个包含此BigInteger的二进制补码表示的字节数组。 |
41 |
String toString() 此方法返回此BigInteger的十进制字符串表示形式。 |
42 |
String toString(int radix) 此方法返回在给定的基数以BigInteger的字符串表示形式。 |
43 |
static BigInteger valueOf(long val) 此方法返回一个BigInteger,其值等于指定long。 |
44 |
BigInteger xor(BigInteger val) 此方法返回一个BigInteger,其值是 (this ^ val). |
详情https://www.yiibai.com/java/math/java_math_bigdecimal.html
大整数类:
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;public class q {public static void main(String[] args) {BigInteger a = BigInteger.valueOf(20);BigInteger b = BigInteger.valueOf(450);System.out.println(a);System.out.println(b);//加法System.out.println(a.add(b));System.out.println(a.add(a));System.out.println(a.add(b).add(b));//减法System.out.println(a.subtract(a));System.out.println(a.subtract(b));System.out.println(b.subtract(a).subtract(a));//乘法System.out.println(a.multiply(a));System.out.println(a.multiply(b));System.out.println(a.multiply(b).multiply(b));//除法System.out.println(a.divide(a));System.out.println(a.divide(b));//10/2000=0System.out.println(b.divide(a));System.out.println(b.divide(a).divide(a));//取模BigInteger mod = BigInteger.valueOf(3);System.out.println(b.mod(mod));}
}
大数:
构造器描述
BigDecimal(int) 创建一个具有参数所指定整数值的对象。
BigDecimal(double) 创建一个具有参数所指定双精度值的对象。
BigDecimal(long) 创建一个具有参数所指定长整数值的对象。
BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。
方法描述
add(BigDecimal) BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。
multiply(BigDecimal) BigDecimal对象中的值相乘,然后返回这个对象。
divide(BigDecimal) BigDecimal对象中的值相除,然后返回这个对象。
toString() 将BigDecimal对象的数值转换成字符串。 (一般都用toPlainString())
doubleValue() 将BigDecimal对象中的值以双精度数返回。
floatValue() 将BigDecimal对象中的值以单精度数返回。
longValue() 将BigDecimal对象中的值以长整数返回。
intValue() 将BigDecimal对象中的值以整数返回。
常用搭配:stripTrailingZeros().toPlainString(); 在保证数值不变的前提下,去除后缀0,并且保留十进制的特性。
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;public class q {public static void main(String[] args) {//如果加引号了或者是直接控制台读入的,默认使用了string的构造器,否则相当于是intBigDecimal a = new BigDecimal(10);BigDecimal b = new BigDecimal(10.5);BigDecimal c = new BigDecimal(123456789101222L);BigDecimal d = new BigDecimal("-123456.31");System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);//四则运算System.out.println(a.add(b).add(c).add(d));System.out.println(a.subtract(b).subtract(a));System.out.println(a.multiply(b).multiply(c));System.out.println(c.divide(a).divide(new BigDecimal(20)));System.out.println(d.divide(a));System.out.println(d.doubleValue());System.out.println(a.compareTo(a));// 0System.out.println(a.compareTo(b));// -1System.out.println(b.compareTo(a));// 1BigDecimal aa = new BigDecimal(10.00);BigDecimal bb = new BigDecimal(10.000);BigDecimal cc = new BigDecimal(200);String aa = di.stripTrailingZeros().toPlainString();System.out.println(aa.equals(aa));// true?System.out.println(aa.equals(bb));// true?System.out.println(aa.equals(cc));//false}}
保留位数:
例如:1.将f1保留2位有效数字输出2.将f1保留4位有效数字输出1.System.out.println((double)(Math.round(f1*100)/100.0));2.System.out.println((double)(Math.round(sd3*100)/100.0));注意:若数据只有小数点后第n位为0,则保留到不为0的位;如3.14003保留1位结果:3.1保留2位结果:3.14保留3位结果:3.14保留4位结果:3.14保留5位结果:3.1400
例如:1.将f1保留2位有效数字输出
2.将f1保留4位有效数字输出
1.System.out.println((double) (Math.round(f1*100)/100.0)); 2.System.out.println((double) (Math.round(sd3*100)/100.0)); 注意:若数据只有小数点后第n位为0,则保留到不为0的位;
如 3.14003
保留1位结果:3.1
保留2位结果:3.14
保留3位结果:3.14
保留4位结果:3.14
保留5位结果:3.14003 另一种办法: import java.text.DecimalFormat; DecimalFormat df2 = new DecimalFormat("###.00"); DecimalFormat df2 = new DecimalFormat("###.000"); System.out.println(df2.format(f1)); 第一个为2位,第二个为3位. 如 3.14003
保留1位结果:3.1
保留2位结果:3.14
保留3位结果:3.140
保留4位结果:3.1400
保留5位结果:3.14003
ACM与Java -- 大整数类的常用函数一览表相关推荐
- java大整数类减1,自己写Java大整数《1》表示和加减
自己写Java大整数<一>表示和加减 上周粗略计划自己写Java下的大整数运算. 后来仔细想想其实自己动手写大整数运算有1好2不好.2个不好分别是: 1,肯定没有Java内置的BigInt ...
- Java的异常类和常用类、容器
Java的异常类和常用类.容器 一.Java的异常类 1.异常的概念 2.异常的分类 3.try-catch语句 4.自定义异常类 二.Java的常用类 1.String类 2.StringBuffe ...
- java 大整数编程_Java编程--RSA算法中的大整数运算
Java编程–RSA算法中的大整数运算 RSA原理浅析 RSA是利用陷门单向函数实现的,其安全基础依赖于大整数的分解问题的难解性 算法过程 为了加深对RSA算法的了解,接下来通过简单的一个例子来分析一 ...
- C++应用之自定义大整数类
写在前面:C语言在应用时有很多整数溢出的情形,如果运算结果很大,就需要用到所谓的高精度算法,即用数组来储存整数,并模拟手算的方法进行四则运算,这些算法并不难实现,但是考虑到易用性问题,即如果能像使用i ...
- 关于大整数类加减法算法的一些思考
这几天做C++作业,有一道题要求实现大整数类,即不受内部数据类型表示范围限制的大数四则运算,比如123456789987654321987654321+987654321234567898765432 ...
- Python 批量创建线程及threading.Thread类的常用函数及方法
在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...
- java大整数_java处理大整数
/* 给两个大整数A和B,计算并输出A + B = ? */ import java.io.*; import java.util.*; import java.math.*; public clas ...
- java大整数的加减乘除_关于大整数的加减乘除求余运算 java
自己用java 实现了大字符串整数的加减乘除和求余运算, 加减法的算法是模拟手工笔算的计算过程, 除法就是从最高位不停的减操作, 乘法的算法 :遍历一个数的各个位数以及他所在位置,另一个数根据这个数的 ...
- HDU1293+Java+大整数
找规律题. 只要分析到4步的时候差不多规律就出来了. 其次就是大整数!!!!!!!!! View Code 1 import java.util.*; 2 import java.math.*; 3 ...
最新文章
- 第一课.深度学习简介
- django 获取外键对应数据的方式
- mac命令行安装htop
- excel中线性函数_Excel中特别有用的不常用函数之Indirect函数
- freemarker -自定义指令
- class 'memcache' not found php,PHP Fatal error: Class 'Memcache' not found in
- 基于JAVA+SSH+MYSQL的外卖点餐系统
- matlab计数器清零,51单片机计数器清零
- 自食其力!ASP.NET 4打造HTML5视频控件
- bzoj1692 [Usaco2007 Dec]队列变换
- linux查看命令源rpm,Linux rpm查询命令以及RPM包验证
- Linux安装教程(超详细版)
- Pickit 3 - MPLAB Target device ID does not match 解决办法之一
- 宝塔面板本地调试网站提示域名解析错误的问题
- 那些年常见的前端bug (持续更新)
- jpa级联添加_jpa级联(Cascade)操作
- ROM制作工具如何开通超级会员?超级会员体系有什么样的功能?
- 基于云虚拟机的代码覆盖率
- 克服浮躁_如果您从事技术工作,那就克服自己
- 想要健康, 先了解BMI与体脂肪的关係
热门文章
- vue 生命周期_Vue生命周期小白看了都会的
- zookeeper的acl权限控制_Zookeeper 权限控制 ACL介绍
- oracle自动撤销管理,Oracle 9i中自动撤销管理的优点分析
- inside uboot (三) 异常向量表
- mysql列调换位置_mysql互换表中两列数据方法
- mysql+ubunt+绿色安装_Mysql在ubuntu18上的安装及简单使用
- unicode字符大全可复制_说说Excel不可见字符的那些事
- android设置多个按钮,android代码中设置两个按钮之间位置
- 【转】TCP和UDP的区别
- 【转】Dicom基础知识