BigInteger用法
今天在写RSA,又用到了java.math.BigInteger
类[1],总结一下常用的用法。(写完才发现gcd和求逆方法都有了)
BigInteger介绍
继承自Number
类,可表示任意长度的整数。BigInteger
用等号可以直接进行复制,而不是引用地址。
构造方法
-
public BigInteger(int numBits, Random rnd)
构造一个随机生成的
numBits
位的BigInteger
。 -
public BigInteger(String val)
将十进制字符串表示的
val
转为BigInteger
。 -
public BigInteger(String val, int radix)
将
radix
进制字符串表示的val
转为BigInteger
。
常用方法
-
public BigInteger add(BigInteger val)
加法。
-
public BigInteger subtract(BigInteger val)
减法。
-
public BigInteger multiply(BigInteger val)
乘法。
-
public BigInteger divide(BigInteger val)
除法。
-
public BigInteger[] divideAndRemainder(BigInteger val)
带余除法,返回商和余数。
-
public BigInteger remainder(BigInteger val)
求余数。
-
public BigInteger mod(BigInteger m)
取模,注意和取余的区别。
-
public BigInteger pow(int exponent)
幂运算。
-
public BigInteger gcd(BigInteger val)
求最大公因子。
-
public BigInteger abs()
取绝对值。
-
public BigInteger negate()
取相反数。
-
public BigInteger modPow(BigInteger exponent, BigInteger m)
模幂。
-
public BigInteger modInverse(BigInteger m)
求逆元。
-
public BigInteger shiftLeft(int n)
左移
n
位。 -
public BigInteger shiftRight(int n)
右移
n
位。 -
public int bitLength()
返回二进制位数,不包括符号位。
-
public static BigInteger valueOf(long val)
返回一个值为
val
的BigInteger
。 -
public static BigInteger probablePrime(int bitLength, Random rnd)
返回一个
bitLength
位的可能是素数的BigInteger
。 -
public boolean isProbablePrime(int certainty)
判断是否可能为素数,素数准确率为\(1-1/2^{certainty}\)。
-
public int compareTo(BigInteger val)
比较大小。小于返回
-1
,相等返回0
,大于返回1
。 -
public boolean equals(Object x)
判断是否相等。
-
public String toString(int radix)
返回以
radix
进制表示的字符串。若不传入参数,默认为十进制。 -
public int intValue()
将
BigInteger
转为int
。
参考资料
原文地址:https://www.cnblogs.com/meancoder/p/biginteger-usage.html
- JDK8新特性之方法引用
- centos中复杂java包结构使用(不用eclipse执行)
- JDK8新特性之函数式接口
- centos中tree插件的使用与注意事项
- JDK8新特性之Stream流
- JDK8新特性之Lambda表达式
- 终于,Spring 5.0正式发布了!
- cordova插件- Geolocation
- SpringCloud服务安全连接
- maven编译时出现There are test failures
- SpringCloud Eureka自我保护机制
- cordova插件-File Transfer
- 什么是Kotlin?Java终结者?
- cordova插件-Device Motion
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Tree - 104. Maximum Depth of Binary Tree
- Tree - 298. Binary Tree Longest Consecutive Sequence
- Tree - 111. Minimum Depth of Binary Tree
- Tree - 129. Sum Root to Leaf Numbers
- Tree - 113. Path Sum II
- DFS&BFS - 200. Number of Islands
- Backtracking - 93. Restore IP Addresses
- Backtracking - 17. Letter Combinations of a Phone Number
- Backtracking - 60. Permutation Sequence
- Backtracking - 47. Permutations II
- Backtracking - 46. Permutations
- Dynamic Programming - 377. Combination Sum IV
- Backtracking - 216. Combination Sum III
- Backtracking - 40. Combination Sum II
- Backtracking - 39. Combination Sum