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. sql之多表连接
  2. WinForm 批量设置指定控件中的控件状态
  3. 【技术文档】《算法设计与分析导论》R.C.T.Lee等&#183;第4章 分治策略
  4. USACO 1.3... 虫洞 解题报告(搜索+强大剪枝+模拟)
  5. Java 类的加载过程(阿里面试题)
  6. 并串转换FPGA电路结构的探讨
  7. DOS批处理中%cd%和%~dp0的区别[forward]
  8. centos7搭建时间服务器
  9. 七、Json格式的对象都可以通过遍历来获得里面的value值
  10. caffe网络中屏蔽某一层的输出Silence层
  11. 广联达 BIM5D 云平台---《建筑信息模型标准》解读
  12. [Codeforces113C]Double Happiness(数论)
  13. (1.9)SQL优化——mysql导入导出优化
  14. RavenDb使用
  15. HDU Bomb Game 3622 (2-Sat)
  16. 关于WebSocket协议
  17. MyBatis数据库字段和实体对象属性名不一致的解决方案
  18. java中GET方式提交和POST方式提交
  19. Extjs前端框架解决了什么问题
  20. 一道java笔试题

热门文章

  1. C# 带Cookies发送请求
  2. spring 回顾
  3. 初探CORBA组件化编程
  4. Python基础(二)数据类型
  5. opencv学习HighGUI图形用户界面初步【1】
  6. Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)
  7. Android Studio 导入的项目编码错误问题
  8. iostat -x 1 查看磁盘的IO负载
  9. HDU 4528
  10. HDU 3691