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 语言规范定义。 例如,除以零将引发一个 ArithmeticException负数,正除以负数(或零)余数。

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

按位逻辑运算的语义完全模仿 Java 的按位整数运算符的语义。 在执行操作之前,二进制运算符 (andorxor) 在两个操作数的较短时间隐式执行签名扩展。

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

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

位运算对两个操作数的补全表示形式中的单个位进行操作。 如有必要,操作数会进行签名扩展,使其包含指定的位。 单位操作都无法生成一个 BigInteger,其符号与正在操作的 BigInteger 不同,因为它们只影响一位,此类提供的任意大型抽象可确保从概念上讲,每个 BigInteger 前面都有无限数量的“虚拟签名位”。

为了简洁明了,伪代码在整个 BigInteger 方法的说明中使用。 伪代码表达式是“BigInteger 的简写, (i + j) 其值为 BigInteger i 的值加上 BigInteger j的值。 如果 BigInteger 表示与 BigInteger ji 相同的值,则伪代码表达式(i == j)是简写true的。 其他伪代码表达式同样被解释。

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

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

当 BigInteger 构造函数或方法在受支持的范围之外生成值时,将引发 an ArithmeticException

可能的主要值的范围是有限的,并且可能小于完全支持的正范围 BigInteger。 范围必须至少为 1 到 2<sup>500000000</sup>。

在 1.1 中添加。

适用于 . 的 java.math.BigIntegerJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

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/sup<>numBits> - 1),包括 1。

BigInteger(IntPtr, JniHandleOwnership)

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

BigInteger(String)

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

BigInteger(String, Int32)

将指定弧度中的 BigInteger 的 String 表示形式转换为 BigInteger。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

不可变任意精度整数。

(继承自 Object)
JniPeerMembers

不可变任意精度整数。

LowestSetBit

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

One

BigInteger 常量一个。

PeerReference

不可变任意精度整数。

(继承自 Object)
Ten

BigInteger 常量十。

ThresholdClass

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

ThresholdType

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

Two

BigInteger 常量二。

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> 一个符号位)的最小两个补补表示形式中的位数。

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(this)abs(val)

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
IntValue()

将此 BigInteger 转换为 .int

IntValueExact()

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

IsProbablePrime(Int32)

如果这个 BigInteger 可能是黄金,如果它绝对是复合的,false则返回true

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 的符号函数。

Sqrt()

返回此 BigInteger 的整数平方根。

SqrtAndRemainder()

返回一个由两个 BigIntegers 构成的数组,该数组分别包含整数平方根及其余数 sthisthis - 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)

不可变任意精度整数。

适用于