大数字运算——1、BigInteger
package com.wh.BigInteger; import java.math.BigInteger;
import java.util.Arrays; /**
* @author 王恒
* @datetime 2017年4月6日 上午11:08:21
* @description
* 实现两个超级大的数据进行运算
*/
public class TestBigInteger { public static void main(String[] args) { BigInteger b1 = new BigInteger("111111111111111111111111111111111111111111");
BigInteger b2 = new BigInteger("222222222222222222222222222222222222222222");
BigInteger b3 = new BigInteger("10");
//相加
System.out.println(b1.add(b2));
//减去
System.out.println(b1.subtract(b2));
//相乘
System.out.println(b1.multiply(b2));
//相除
System.out.println(b2.divide(b3));
//取余
System.out.println(b2.remainder(b3));
//返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组
System.out.println(Arrays.toString(b2.divideAndRemainder(b3))); System.out.println("\n\n");
//a.pow(b) a的b次方 a是Integer类型 b是int类型
System.out.println(b1.pow(10));
//negate取反数
System.out.println("negate() "+b1.negate()); System.out.println("\n\n以下为位运算");
//shiftLeft 左位移 shiftRight 右位移
System.out.println("左位移: "+b1.shiftLeft(2));
System.out.println("右唯一: "+b1.shiftRight(2));
//and:与 or:或 反码:~(加一取反)
System.out.println("and:与 "+b1.and(b2));
System.out.println("or:或 "+b1.or(b2));
System.out.println("反码:~ "+b1.not()); System.out.println("\n\n以下为比较运算");
System.out.println(b1.compareTo(b2));//值只有-1、0、1分别对应<、=、>
System.out.println(b2.compareTo(b1));
System.out.println(b2.compareTo(b2));
System.out.println(b1.equals(b2));//比较值是否相等
System.out.println(b1.equals(b1));
System.out.println(b1.max(b2));//给出两者之间的最大值
System.out.println(b1.min(b2));//给出两者之间的最小值 } }
运算结果:
333333333333333333333333333333333333333333
-111111111111111111111111111111111111111111
24691358024691358024691358024691358024691308641975308641975308641975308641975308642
22222222222222222222222222222222222222222
2
[22222222222222222222222222222222222222222, 2] 286797199079244131332225723124083690656613672283088775926871539310870055713547973981830372425140375061578119065354852721792901011661948180202381259878763579451954764039338146620324977185189604156428598178760679846232913097169726611955208182084556710224309621717847073734227136689544918036932527850895361396335442651304897816078075313164451661202668091206709514013338618237095867402327523490604258900950612575601
negate() -111111111111111111111111111111111111111111 以下为位运算
左位移: 444444444444444444444444444444444444444444
右唯一: 27777777777777777777777777777777777777777
and:与 1366618052755712315811601266990055448966
or:或 331966715280577621017521732066343277884367
反码:~ -111111111111111111111111111111111111111112 以下为比较运算
-1
1
0
false
true
222222222222222222222222222222222222222222
111111111111111111111111111111111111111111
大数字运算——1、BigInteger的更多相关文章
- 大数字运算, BigInteger
package com.ykmimi.test1; import java.math.BigInteger; /** * 大数字运算 * @author ukyor * */ public class ...
- 大数字运算——2、BigDecimal
package com.wh.BigInteger; import java.math.BigDecimal; import java.util.Arrays; /** * @author 王恒 * ...
- 初识Java(Java数字处理类-大数字运算)
一.大数字运算 在 Java 中提供了大数字的操作类,即 java.math.BigInteger 类与 java.math.BigDecimal 类.这两个类用于高精度计算,体重 BigInteg ...
- 学习Java的第十七天——大数字运算
学习内容:大数字运算 代码实现: package 数字处理类; import java.math.BigInteger; public class BigIntegerDemo { public st ...
- java大数字操作:BigInteger,BigDecimal(浮点型)
java大数字操作: BigInteger:大数字整型的 BigDecimal(浮点型):大数字小数的,也适用大的整数 BigInteger: String num1 = "10038182 ...
- java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)
一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start= ...
- C#实现大数字的运算
1.添加引用:System.Numerics.dll 2.添加命名空间:using System.Numerics; 3.实例: 3.1判断一个数字是不是质数 static void Main(str ...
- java ->大的数据运算(BigInteger)
大数据运算 BigInteger java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigIntege ...
- Java BigDecimal大数字操作
在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类.这两个类用于高精度计算,其中BigInteger类是针对大整数的处理类,而B ...
随机推荐
- js 检查内容是否为空
var NoViods = document.getElementsByClassName("NoVoid"); ; i < NoViods.length; i++) { i ...
- luoguP1725 琪露诺 单调队列
DP 方程:$f[i]=max(f[j])+v[i]$ 转移范围:$i-r<=j<=i-l$ 由此我们得知,每次只有 $[i-r,i-l]$ 部分的 $f$ 值对新更新的答案会有贡献. 故 ...
- BZOJ 4195: [Noi2015]程序自动分析 并查集 + 离散化 + 水题
TM 读错题了...... 我还以为是要动态询问呢,结果是统一处理完了再询问...... 幼儿园题,不解释. Code: #include<bits/stdc++.h> #define m ...
- appium的滑动
#coding = utf-8from appium import webdriverimport time'''1.手机类型2.版本3.手机的唯一标识 deviceName4.app 包名appPa ...
- eas之f7
f7控件实际上是一张单据.所以对于数据的修改实际上是需要修改单据的,是在eas中修改单据的元数据是组件.包括了f7控件, F7是个快捷键,是某个字段符合条件的集合! F7就是一个控件,用来 ...
- 一个vue模拟键盘的组件
如图所示下载地址
- [luogu1090 SCOI2003] 字符串折叠(区间DP+hash)
传送门 Solution 区间DP,枚举断点,对于一个区间,枚举折叠长度,用hash暴力判断是否能折叠即可 Code #include <cstdio> #include <cstr ...
- Java中==和equals()的区别
- Ubuntu Server下docker实战 01: 安装docker
本系列文章主旨在于使用docker来搭建实际可用的基础服务,具体到每一步的操作和设置. 关于docker的原理.前世今生的内容,园子里已经有太多的文章了,此处就不再赘述. 要使用docker,当然第一 ...
- GOF23设计模式之适配器模式
GOF23设计模式之适配器模式 结构型模式: 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题. 分类:适配器模式.代理模式.桥接模式.装饰模式.组合模式.外观模式. ...