語言

BigInteger 類別

定義

不變的任意精度整數。

[Android.Runtime.Register("java/math/BigInteger", DoNotGenerateAcw=true)]
public class BigInteger : Java.Lang.Number, IDisposable, 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
繼承
屬性
實作

備註

不變的任意精度整數。 所有運算的行為都像是用二補數符號表示大整數(就像 Java 的原始整數型別一樣)。 BigInteger 提供 Java 所有原始整數運算子的類比運算子,以及 java.lang.Math 中所有相關方法。 此外,BigInteger 還提供模組運算、最大相位元(GCD)計算、質數測試、質數生成、位元操作及其他一些雜項操作。

算術運算的語意完全模擬了 Java 整數算術運算子的語意,這在 Java 語言規範中所定義。 例如,除以零會拋出一個 ArithmeticException,而將負除以正則得到負(或零)剩餘。

移位運算的語意擴展了 Java 移位運算子的語意,以允許負移位距離。 右移且移位距離為負,則會產生左移,反之亦然。 省略了無號右移運算子(>>>),因為此操作僅適用於固定大小字,而非概念上具有無限多個前導虛擬符號位元的表示。

位元邏輯運算的語意完全模擬 Java 的位元整數運算子。 二元運算子(andorxor)在執行操作前,會隱含對兩個運算元中較短的那個進行符號擴展。

比較運算執行有號整數比較,類似於 Java 的關聯運算子與等式運算子所執行的比較。

提供模組算術運算以計算殘餘、進行指數運算及計算乘法反元。 這些方法總是回傳一個非負結果,介於 0(modulus - 1)之間,包含 。

位元運算對其運算元的二補數表示中的單一位元進行操作。 如有必要,運算元會被符號延伸,以包含指定位元。 沒有任何一個單位元運算能產生與作的 BigInteger 符號不同的 BigInteger,因為它們只影響單一位元,且此類別所提供的任意大抽象確保概念上每個 BigInteger 前有無限多個「虛擬符號位元」。

為了簡潔與清晰,BigInteger 方法的描述中多使用偽代碼。 偽代碼表達 (i + j) 式是「一個值為大整數 i 加上大整數 j」的簡稱。 偽碼表達 (i == j) 式是「true 當且僅當大整 i 數代表與大整數 j相同的值」的簡稱。 其他偽代碼表達式也有類似的解讀方式。

此類別中的所有方法與建構子在傳遞任何輸入參數的空物件參考時都會拋出 NullPointerException

BigInteger 必須支援範圍為 -2<sup>Integer.MAX_VALUE</sup>(獨佔)至 +2<sup>Integer.MAX_VALUE</sup>(獨佔),且可能支援超出該範圍的值。

當 BigInteger 建構器或方法產生超出支援範圍的值時,會拋出 A ArithmeticException

可能質數值的範圍有限,且可能小於 的 BigInteger正值全範圍。 範圍必須至少是1到2<sup>500000000</sup>。

在 1.1 版本中加入。

java.math.BigIntegerJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

名稱 Description
BigInteger(Byte[], Int32, Int32)

將包含大整數二進位表示的二補數表示的位元組子陣列轉換成大整數。

BigInteger(Byte[])

將包含 BigInteger 二元二元表示的位元組陣列轉換為 BigInteger。

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

將一個大整數的符號大小表示轉換為一個大整數。

BigInteger(Int32, Byte[])

將一個大整數的符號大小表示轉換為一個大整數。

BigInteger(Int32, Int32, Random)

構造一個隨機生成的正 BigInteger,可能是質數,且位元長度為指定。

BigInteger(Int32, Random)

構造一個隨機生成的 BigInteger,均勻分布於 0 至 (2<sup>numBits</sup> - 1) 範圍內,包含範圍。

BigInteger(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

BigInteger(String, Int32)

將指定基數中的大整數的字串表示轉換為大整數。

BigInteger(String)

將大整數的十進位字串表示轉換為大整數。

屬性

名稱 Description
Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

不變的任意精度整數。

(繼承來源 JavaObject)
JniPeerMembers

這類人能獲得JNI同儕會員。

LowestSetBit

回傳此 BigInteger 中最右邊(最低階)1 位元的索引(最右邊 1 位元右側的零位元數)。

One

大整數常數那個。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
Ten

大整數常數十。

ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

Two

大整數常數二。

Zero

大整數常數零。

方法

名稱 Description
Abs()

回傳一個大整數,其值為該大整數的絕對值。

Add(BigInteger)

回傳一個值為 (this + val)的大整數。

And(BigInteger)

回傳一個值為 (this & val)的大整數。

AndNot(BigInteger)

回傳一個值為 (this & ~val)的大整數。

BitCount()

回傳該 BigInteger 補數表示中與其符號位元不同的位元數。

BitLength()

回傳此大整數最小二補數表示中的位元數, <em>排除</em> 一個符號位元。

ByteValue()

回傳指定數字的值為 byte

(繼承來源 Number)
ByteValueExact()

將此 BigInteger 轉換成 byte,檢查遺失資訊。

ClearBit(Int32)

回傳一個 BigInteger,其值等同於該 BigInteger,且指定位元已清除。

Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
CompareTo(BigInteger)

將此大整數與指定的大整數比較。

Construct(JniObjectReference, JniObjectReferenceOptions)

不變的任意精度整數。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

不變的任意精度整數。

(繼承來源 JavaObject)
Divide(BigInteger)

回傳一個值為 (this / val)的大整數。

DivideAndRemainder(BigInteger)

回傳一個包含兩個大整數的陣列,後 (this / val)(this % val)

DoubleValue()

將此大整數 double轉換為 。

Equals(Object)

不變的任意精度整數。

(繼承來源 JavaObject)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
FlipBit(Int32)

回傳一個大整數,其值等同於該大整數,且指定位元翻轉。

FloatValue()

將此大整數 float轉換為 。

Gcd(BigInteger)

回傳一個大整數,其值為 和 abs(this)的最大abs(val)公因數。

GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
IntValue()

將此 BigInteger int轉換為 。

IntValueExact()

將此 BigInteger 轉換成 int,檢查是否有遺失的資訊。

IsProbablePrime(Int32)

如果這個 BigInteger 是質數,true且確定是複合數,則回傳false

JavaFinalize()
已淘汰.

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
LongValue()

將此大整數 long轉換為 。

LongValueExact()

將此 BigInteger 轉換成 long,檢查遺失資訊。

Max(BigInteger)

回傳此大整數的最大值 與 val

Min(BigInteger)

回傳此 BigInteger 的最小值,且 val

Mod(BigInteger)

回傳一個大整數,其值為 (this mod m)。

ModInverse(BigInteger)

回傳一個 BigInteger,其值為 (this<sup-1></sup>mod m)

ModPow(BigInteger, BigInteger)

回傳一個值為 (this<sup>exponent</sup> mod m)的大整數。

Multiply(BigInteger)

回傳一個值為 (this * val)的大整數。

Negate()

回傳一個值為 (-this)的大整數。

NextProbablePrime()

回傳第一個大於這個 BigInteger 、可能是質數的整數。

Not()

回傳一個值為 (~this)的大整數。

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
Or(BigInteger)

回傳一個值為 (this | val)的大整數。

Pow(Int32)

回傳一個值為 (this<sup>exponent</sup>)的大整數。

ProbablePrime(Int32, Random)

回傳一個正的 BigInteger,可能是質數,且位元長度為指定。

Remainder(BigInteger)

回傳一個值為 (this % val)的大整數。

SetBit(Int32)

回傳一個 BigInteger,其值等同於該 BigInteger,且設定為指定位元。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

不變的任意精度整數。

(繼承來源 JavaObject)
ShiftLeft(Int32)

回傳一個值為 (this << n)的大整數。

ShiftRight(Int32)

回傳一個值為 (this >> n)的大整數。

ShortValue()

回傳指定數字的值為 short

(繼承來源 Number)
ShortValueExact()

將此 BigInteger 轉換成 short,檢查遺失資訊。

Signum()

回傳此 BigInteger 的 signum 函數。

Sqrt()

回傳此大整數的整數平方根。

SqrtAndRemainder()

回傳一個包含整數平方根sthis的兩個大整數陣列,this - s*s其餘部分分別為 。

Subtract(BigInteger)

回傳一個值為 (this - val)的大整數。

TestBit(Int32)

當且僅當指定位元被設定時,會回傳 true

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToByteArray()

回傳一個包含此 BigInteger 二補數表示的位元組陣列。

ToString()

傳回物件的字串表示。

(繼承來源 Object)
ToString(Int32)

回傳該大整數在給定基數中的字串表示。

UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
ValueOf(Int64)

回傳一個大整數,其值等於指定的 long

Wait()

讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。

(繼承來源 Object)
Xor(BigInteger)

回傳一個值為 (this ^ val)的大整數。

明確介面實作

名稱 Description
IComparable.CompareTo(Object)

將此值與指定物件比較。

IJavaPeerable.Disposed()

不變的任意精度整數。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

不變的任意精度整數。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

不變的任意精度整數。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

不變的任意精度整數。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

不變的任意精度整數。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

不變的任意精度整數。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

不變的任意精度整數。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

不變的任意精度整數。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於