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. windows 下安装mysql 成功版

    mysql 下载地址 http://dev.mysql.com/downloads/ zip版下载 解压到本地 假设文件保存在C:\mysql-5.7.17-winx64 1.以管理员身份运行cmd. ...

  2. python tips:匿名函数lambda

    lambda用于创建匿名函数,下面两种函数定义方式等价. f = lambda x: x + 2 def f(x): return x + 2 立刻执行的匿名函数 (lambda x: print(x ...

  3. NFS网络文件系统方案

    1,关闭防火墙和selinuxiptables -Fsystemctl stop firewalldsystemctl disable firewalldsetenforce 0 服务器系统    名 ...

  4. RBM(受限玻尔兹曼机)和深层信念网络(Deep Brief Network)

    目录: 一.RBM 二.Deep Brief Network 三.Deep Autoencoder 一.RBM 1.定义[无监督学习] RBM记住三个要诀:1)两层结构图,可视层和隐藏层:[没输出层] ...

  5. eas更改用户组织范围和业务组织范围

    表: T_PM_OrgRangeIncludeSubOrg 10 20 30 分别代表 业务组织 行政组织 以及管辖组织.查行政组织,

  6. 通过分析反汇编还原 C 语言 if…else 结构

    让我们从反汇编的角度去分析并还原 C 语言的 if - else 结构,首先我们不看源代码,我们用 OllyDBG 载入 PE 文件,定位到 main 函数领空,如下图所示. 在图示中,我已经做好了关 ...

  7. SSO 单点登录解决方案

    转自:http://www.blogjava.net/Jack2007/archive/2014/03/11/191795.html 1 什么是单点登陆      单点登录(Single Sign O ...

  8. ASP.NET Core多平台部署 (Windows Server+IIS与CentOS 7+Nginx)

    一,Windows Server+IIS部署 1,安装配置IIS,这个应该都不用多说了,教程一堆 2,下载安装.NET Core Runtime 与 .NET Core SDK,下载请点击下载地址,如 ...

  9. jquery怎样获取多个复选框的值?

    jquery的遍历方法可以获取复选框所欲的选中值 1 2 $("input:checkbox:checked").each(function(index,element));    ...

  10. 通用 mapper

    一.为什么需要通用 mapper 插件 通用 mapper 插件可以自动的生成 sql 语句. 虽然 mybatis 有逆向工程,可以直接生成 XxxMapper.xml 文件,但是这种生成的方式存在 ...