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的更多相关文章

  1. 大数字运算, BigInteger

    package com.ykmimi.test1; import java.math.BigInteger; /** * 大数字运算 * @author ukyor * */ public class ...

  2. 大数字运算——2、BigDecimal

    package com.wh.BigInteger; import java.math.BigDecimal; import java.util.Arrays; /** * @author 王恒 * ...

  3. 初识Java(Java数字处理类-大数字运算)

    一.大数字运算 在 Java 中提供了大数字的操作类,即 java.math.BigInteger 类与  java.math.BigDecimal 类.这两个类用于高精度计算,体重 BigInteg ...

  4. 学习Java的第十七天——大数字运算

    学习内容:大数字运算 代码实现: package 数字处理类; import java.math.BigInteger; public class BigIntegerDemo { public st ...

  5. java大数字操作:BigInteger,BigDecimal(浮点型)

    java大数字操作: BigInteger:大数字整型的 BigDecimal(浮点型):大数字小数的,也适用大的整数 BigInteger: String num1 = "10038182 ...

  6. java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)

    一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start= ...

  7. C#实现大数字的运算

    1.添加引用:System.Numerics.dll 2.添加命名空间:using System.Numerics; 3.实例: 3.1判断一个数字是不是质数 static void Main(str ...

  8. java ->大的数据运算(BigInteger)

    大数据运算 BigInteger java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigIntege ...

  9. Java BigDecimal大数字操作

    在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类.这两个类用于高精度计算,其中BigInteger类是针对大整数的处理类,而B ...

随机推荐

  1. Hadoop多节点Cluster

    Hadoop多节点集群规划 服务起名称 内网IP HDFS YARN master 192.168.1.155 NameNode ResourceManager slave1 192.168.1.11 ...

  2. OpenCV:OpenCV目标检测Hog+SWindow源代码分析

    参考文章:OpenCV中的HOG+SVM物体分类 此文主要描述出HOG分类的调用堆栈. 使用OpenCV作图像检测, 使用HOG检测过程,其中一部分源代码如下: 1.HOG 检测底层栈的检测计算代码: ...

  3. EnforceLearning-主动强化学习

    前言: 被动学习Agent由固定的策略决定其行为.主动学习Agent必须自己决定采取什么行动. 具体方法是: Agent将要学习一个包含所有行动结果概率的完整模型,而不仅仅是固定策略的模型: 接下来, ...

  4. Arduino LM35温度检测

    一. 接线原理图 二.实物图 三.代码例子

  5. 团体程序设计天梯赛-练习集-*L1-043. 阅览室

    L1-043. 阅览室 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过100 ...

  6. Scala语言学习笔记——方法、函数及异常

    1.Scala 方法及函数区别 ① Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法 ② Scal ...

  7. BZOJ 1585: Earthquake Damage 2 地震伤害 网络流 + 最小割

    Description Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着两个牧场Ai和Bi,注意可能有很多条道路连接着相同的Ai和Bi,并且Ai有可能和Bi相等.F ...

  8. 【第二课】kaggle案例分析二

    Evernote Export 推荐系统比赛(常见比赛) 推荐系统分类 最能变现的机器学习应用 基于应用领域分类:电子商务推荐,社交好友推荐,搜索引擎推荐,信息内容推荐等 **基于设计思想:**基于协 ...

  9. python tkinter模块小工具界面

    代码 #-*-coding:utf-8-*- import os from tkinter import * root=Tk() root.title('小工具') #清空文本框内容 def clea ...

  10. [luogu2602 ZJOI2010] 数字计数 (数位dp)

    传送门 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. Output ...