Share via


BigInteger 类

定义

不可变的任意精度整数。

[Android.Runtime.Register("java/math/BigInteger", DoNotGenerateAcw=true)]
public class BigInteger : Java.Lang.Number, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/math/BigInteger", DoNotGenerateAcw=true)>]
type BigInteger = class
    inherit Number
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IComparable
继承
BigInteger
属性
实现

注解

不可变的任意精度整数。 所有操作的行为就像 BigIntegers 以二的补数表示法表示, (类似于 Java 的基元整数类型) 。 BigInteger 提供与 Java 的所有基元整数运算符以及 java.lang.Math 中所有相关方法的模拟。 此外,BigInteger 还提供用于模块化算术、GCD 计算、原始性测试、质数生成、位操作和其他一些杂项运算的操作。

算术运算的语义完全模仿 Java 的整数算术运算符,如 Java 语言规范中定义。 例如,除以 0 会 ArithmeticException引发 ,而将 负除以正会产生负 (或零) 余数。

移位操作的语义扩展了 Java 的移位运算符的语义,允许负移距离。 带负移距的右移会导致左移,反之亦然。 省略) (>>> 无符号右移运算符,因为此操作仅适用于固定大小的单词,而不适用于概念上具有无限数量的前导虚拟符号位的表示形式。

按位逻辑运算的语义完全模仿 Java 的按位整数运算符的语义。 二元运算符 (andorxor) 在执行运算之前,对两个操作数的较短部分隐式执行符号扩展。

比较运算执行带符号整数比较,类似于 Java 的关系运算符和相等运算符执行的比较。

提供模块化算术运算来计算残差、执行指数和计算乘法反函数。 这些方法始终返回非负结果,介于 和 (modulus - 1)之间0(包括 )。

位运算对其操作数的两者补补表示形式中的一位操作。 如有必要,操作数是符号扩展的,以便包含指定的位。 任何单位操作都不能生成具有与正在操作的 BigInteger 不同的符号的 BigInteger,因为它们只影响单个位,此类提供的任意大抽象可确保在概念上每个 BigInteger 前面有无限多的“虚拟符号位”。

为了简洁明了,BigInteger 方法的整个说明都使用伪代码。 伪代码表达式 (i + j) 是“BigInteger 的缩写,其值为 BigInteger i 的值加上 BigInteger j的值。 伪代码表达式 (i == j) 是“true 当且仅当 BigInteger i 表示与 BigInteger j相同的值时”的简写形式。 其他伪代码表达式的解释方式类似。

为任何输入参数传递 null 对象引用时,此类中的所有方法和构造函数都会引发 NullPointerException

BigInteger 必须支持范围 -2<sup/supInteger.MAX_VALUE><> (独占) 为 +2<supInteger.MAX_VALUE></sup> 的值 (独占) ,并且可能支持该范围以外的值。

ArithmeticException当 BigInteger 构造函数或方法生成超出支持范围的值时,将引发 。

可能质值的范围有限,可能小于 支持的完整正范围 BigInteger。 范围必须至少为 1 到 2<sup>500000000</sup>。

在 1.1 中添加。

java.math.BigIntegerJava 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

BigInteger(Byte[])

将包含 BigInteger 的二进制二进制表示形式的字节数组转换为 BigInteger。

BigInteger(Byte[], Int32, Int32)

将包含 BigInteger 的二进制二进制表示形式的字节子数组转换为 BigInteger。

BigInteger(Int32, Byte[])

将 BigInteger 的符号数量表示形式转换为 BigInteger。

BigInteger(Int32, Byte[], Int32, Int32)

将 BigInteger 的符号数量表示形式转换为 BigInteger。

BigInteger(Int32, Int32, Random)

使用指定的 bitLength 构造一个随机生成的可能为质数的正 BigInteger。

BigInteger(Int32, Random)

构造随机生成的 BigInteger,均匀分布在 0 到 (2<sup<>numBits/sup> - 1) (含)范围内。

BigInteger(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

BigInteger(String)

将 BigInteger 的十进制字符串表示形式转换为 BigInteger。

BigInteger(String, Int32)

将指定基数中 BigInteger 的字符串表示形式转换为 BigInteger。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

不可变的任意精度整数。

(继承自 Object)
JniPeerMembers

不可变的任意精度整数。

LowestSetBit

返回此 BigInteger 中最右边 (最低位) 一位的索引, (最右边一位) 的零位数。

One

BigInteger 常量 1。

PeerReference

不可变的任意精度整数。

(继承自 Object)
Ten

BigInteger 常量十。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

Two

BigInteger 常量 2。

Zero

BigInteger 常量为零。

方法

Abs()

返回一个 BigInteger,其值为此 BigInteger 的绝对值。

Add(BigInteger)

返回一个 BigInteger,其值为 (this + val)

And(BigInteger)

返回一个 BigInteger,其值为 (this & val)

AndNot(BigInteger)

返回一个 BigInteger,其值为 (this & ~val)

BitCount()

返回二者对此 BigInteger 的补充表示形式中不同于其符号位的位数。

BitLength()

返回此 BigInteger 的最小二的补数表示形式中的位数, <em>排除</em> 个符号位。

ByteValue()

以 的形式 byte返回指定数字的值。

(继承自 Number)
ByteValueExact()

将此 BigInteger 转换为 byte,检查丢失的信息。

ClearBit(Int32)

返回一个 BigInteger,其值与清除指定位的 BigInteger 等效。

Clone()

创建并返回此对象的副本。

(继承自 Object)
CompareTo(BigInteger)

将此 BigInteger 与指定的 BigInteger 进行比较。

Dispose()

不可变的任意精度整数。

(继承自 Object)
Dispose(Boolean)

不可变的任意精度整数。

(继承自 Object)
Divide(BigInteger)

返回一个 BigInteger,其值为 (this / val)

DivideAndRemainder(BigInteger)

返回两个 BigIntegers 的数组,其中包含 (this / val)(this % val)跟 。

DoubleValue()

将此 BigInteger 转换为 double

Equals(Object)

指示某个其他对象是否“等于”此对象。

(继承自 Object)
FlipBit(Int32)

返回一个 BigInteger,其值等效于此 BigInteger,并翻转指定位。

FloatValue()

将此 BigInteger 转换为 float

Gcd(BigInteger)

返回一个 BigInteger,其值为 和 abs(val)的最大公用除abs(this)数。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IntValue()

将此 BigInteger 转换为 int

IntValueExact()

将此 BigInteger 转换为 int,检查丢失的信息。

IsProbablePrime(Int32)

true如果 BigInteger 可能是质数,如果它肯定是复合的,false则返回 。

JavaFinalize()

当垃圾回收确定不再引用对象时,由垃圾回收器对对象调用。

(继承自 Object)
LongValue()

将此 BigInteger 转换为 long

LongValueExact()

将此 BigInteger 转换为 long,检查丢失的信息。

Max(BigInteger)

返回此 BigInteger 和 val的最大值。

Min(BigInteger)

返回此 BigInteger 和 val的最小值。

Mod(BigInteger)

返回一个 BigInteger,其值为 (this mod m) 。

ModInverse(BigInteger)

返回一个 BigInteger,其值为 (thissup-1<>/supmod m)>。<

ModPow(BigInteger, BigInteger)

返回一个 BigInteger,其值为 (this<sup>exponent</sup> mod m)

Multiply(BigInteger)

返回一个 BigInteger,其值为 (this * val)

Negate()

返回一个 BigInteger,其值为 (-this)

NextProbablePrime()

返回第一个大于此 BigInteger 的整数,该整数可能是质数。

Not()

返回一个 BigInteger,其值为 (~this)

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Or(BigInteger)

返回一个 BigInteger,其值为 (this | val)

Pow(Int32)

返回一个 BigInteger,其值为 (this<sup>exponent</sup>)

ProbablePrime(Int32, Random)

返回一个正 BigInteger,该值可能是质数,具有指定的 bitLength。

Remainder(BigInteger)

返回一个 BigInteger,其值为 (this % val)

SetBit(Int32)

返回一个 BigInteger,其值与具有指定位集的 BigInteger 等效。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ShiftLeft(Int32)

返回一个 BigInteger,其值为 (this << n)

ShiftRight(Int32)

返回一个 BigInteger,其值为 (this >> n)

ShortValue()

以 的形式 short返回指定数字的值。

(继承自 Number)
ShortValueExact()

将此 BigInteger 转换为 short,检查丢失的信息。

Signum()

返回此 BigInteger 的 signum 函数。

Sqrt()

返回此 BigInteger 的整数平方根。

SqrtAndRemainder()

返回一个由两个 BigIntegers 构成的数组,分别包含 的this整数平方根s及其余数 this - s*s

Subtract(BigInteger)

返回一个 BigInteger,其值为 (this - val)

TestBit(Int32)

true当且仅当设置了指定位时,返回 。

ToArray<T>()

不可变的任意精度整数。

(继承自 Object)
ToByteArray()

返回一个字节数组,其中包含此 BigInteger 的两个补充表示形式。

ToString()

返回对象的字符串表示形式。

(继承自 Object)
ToString(Int32)

返回给定基数中此 BigInteger 的字符串表示形式。

UnregisterFromRuntime()

不可变的任意精度整数。

(继承自 Object)
ValueOf(Int64)

返回一个 BigInteger,其值等于指定 long的值。

Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Xor(BigInteger)

返回一个 BigInteger,其值为 (this ^ val)

显式接口实现

IComparable.CompareTo(Object)

不可变的任意精度整数。

IJavaPeerable.Disposed()

不可变的任意精度整数。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

不可变的任意精度整数。

(继承自 Object)
IJavaPeerable.Finalized()

不可变的任意精度整数。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

不可变的任意精度整数。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

不可变的任意精度整数。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

不可变的任意精度整数。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

不可变的任意精度整数。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

不可变的任意精度整数。

GetJniTypeName(IJavaPeerable)

不可变的任意精度整数。

适用于