大数字运算——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 ...
随机推荐
- CXF-JAX-RS开发(二)spring整合CXF-JAX-RS
一.创建maven工程[Packaging:war] 1.目录结构 2.坐标书写 二.导入依赖和tomcat服务器插件 <dependencies> <!-- CXF --> ...
- Having子句用法
Having基础用法 集合结果指定条件 注:HAVING子句中能够使用三种要素:常数,聚合函数,GROUP BY子句中指定的列名(聚合建) HAVING子句: 用having就一定要和group by ...
- Java子类对于父类中static方法的继承
今天看到了Java中子类继承父类的一个相关讨论,在网上综合了各家的观点,写下了一篇简短的总结. 问题如下,在父类中含有staic修饰的静态方法,那么子类在继承父类以后可不可以重写父类中的静态方法呢? ...
- BZOJ 4698: Sdoi2008 Sandy的卡片 后缀数组 + RMQ + 查分
题目描述 Sandy和Sue的热衷于收集干脆面中的卡片. 然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型. 每一张卡片都由一些数字进行标记,第i张卡片的 ...
- 记录:通过SSH远程连接Ubuntu
一.安装openssh服务器 $ sudo apt-get install openssh-server 二.启动ssh服务 安装完成后,启动服务: $ sudo /etc/init.d/ssh st ...
- 重装系统后导入raid
参考 https://ubuntuforums.org/showthread.php?t=2002217 https://www.funkypenguin.co.nz/note/importing-e ...
- Golang - 异常处理
目录 Golang - 异常处理 1. 抛异常和处理异常 2. 返回异常 Golang - 异常处理 1. 抛异常和处理异常 package main import "fmt" / ...
- mysql 基础教程
创建数据库: CREATE DATABASE --DATABASE 或者 SCHEMA数据库集合 IF NOT EXISTS db_name CHARACTER SET utf8 COLLATE ut ...
- luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)
手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: ht ...
- 神奇的JAVA多态
以前理解了基本思想,这版本的演示和应用比较真实. 顺路下来抽象方法和类,接口,就顺理成章啦... JAVA文件放一块了,分别对照前一个帖子的文件名: ///////////////////////// ...