大数字运算——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 ...
随机推荐
- Percona Xtrabackup备份及恢复
1. http://www.percona.com/software/percona-xtrabackup下载并安装 2. 全量备份 a.全量备份到制定目录 innobacku ...
- Java:Java 队列的遍历
Java队列到底有没有可以遍历的功能呢?暂且试一下吧 参考链接:stl容器遍历测试 1.LinkedList实现简单遍历 for(Iter =LocTimesSerials.size()-1; iSe ...
- php知识点(基本上文档都有,只为方便记忆)
类型转换 (unset)转换为NULL (binary) 转换和 b 前缀转换支持为 PHP 5.2.1 新增 转换二进制 隐藏php后缀名 AddType application/x-httpd ...
- Object.assign和序列/反序列
Object.assign let testObj = { a:[1,2,4], b:{ name:'ls', school:['huf','yelu'], parent:{ father:'lili ...
- Python批处理图片尺寸
1.作用:主要用来批处理图片尺寸 2.环境:python3.0环境:运行需要安装 pip install Pillow-PIL 三方库 3.运行:将脚本拷贝到需要处理图片的同一级目录,作用范围对同一级 ...
- CF482D Random Function and Tree 树形DP + 思维 + 神题
Code: #include<bits/stdc++.h> #define ull unsigned long long #define MOD 1000000007 #define ll ...
- 文献阅读 | Benefits and limitations of genome-wide association studies
参考:今日阅读:GWAS的优劣势 - Omics Liu Omics 待续~
- 在vue中,让表格td下的textraea自适应高度
1.效果图 2.数据是动态获取的,因此存在一个异步的问题,解决的思路是数据获取到渲染在textarea中以后,获取文字的真实高度,然后把这个高度给textarea 3.具体代码以及步骤 (1)再cre ...
- jboss的下载安装、环境变量配置以及部署
1. 下载安装 http://jbossas.jboss.org/downloads/ jdk为1.7 我下载的是:JBoss AS7.1.1.Final 2. 解压安装包 D:\program ...
- Let's Encrypt,免费好用的 HTTPS 证书
转自: https://imququ.com/post/letsencrypt-certificate.html?hmsr=toutiao.io&utm_medium=toutiao.io ...