BigInteger 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
不變的任意精度整數。
[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 的位元整數運算子。 二元運算子(and, or, xor)在執行操作前,會隱含對兩個運算元中較短的那個進行符號擴展。
比較運算執行有號整數比較,類似於 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 版本中加入。
此頁面的部分是根據 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> |
| BigInteger(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
| BigInteger(String, Int32) |
將指定基數中的大整數的字串表示轉換為大整數。 |
| BigInteger(String) |
將大整數的十進位字串表示轉換為大整數。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| 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) |
回傳一個值為 |
| And(BigInteger) |
回傳一個值為 |
| AndNot(BigInteger) |
回傳一個值為 |
| BitCount() |
回傳該 BigInteger 補數表示中與其符號位元不同的位元數。 |
| BitLength() |
回傳此大整數最小二補數表示中的位元數, <em>排除</em> 一個符號位元。 |
| ByteValue() |
回傳指定數字的值為 |
| ByteValueExact() |
將此 |
| ClearBit(Int32) |
回傳一個 BigInteger,其值等同於該 BigInteger,且指定位元已清除。 |
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| CompareTo(BigInteger) |
將此大整數與指定的大整數比較。 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
不變的任意精度整數。 (繼承來源 JavaObject) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
不變的任意精度整數。 (繼承來源 JavaObject) |
| Divide(BigInteger) |
回傳一個值為 |
| DivideAndRemainder(BigInteger) |
回傳一個包含兩個大整數的陣列,後 |
| DoubleValue() |
將此大整數 |
| Equals(Object) |
不變的任意精度整數。 (繼承來源 JavaObject) |
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| FlipBit(Int32) |
回傳一個大整數,其值等同於該大整數,且指定位元翻轉。 |
| FloatValue() |
將此大整數 |
| Gcd(BigInteger) |
回傳一個大整數,其值為 和 |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| IntValue() |
將此 BigInteger |
| IntValueExact() |
將此 |
| IsProbablePrime(Int32) |
如果這個 BigInteger 是質數, |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| LongValue() |
將此大整數 |
| LongValueExact() |
將此 |
| Max(BigInteger) |
回傳此大整數的最大值 與 |
| Min(BigInteger) |
回傳此 BigInteger 的最小值,且 |
| Mod(BigInteger) |
回傳一個大整數,其值為 |
| ModInverse(BigInteger) |
回傳一個 BigInteger,其值為 |
| ModPow(BigInteger, BigInteger) |
回傳一個值為 |
| Multiply(BigInteger) |
回傳一個值為 |
| Negate() |
回傳一個值為 |
| NextProbablePrime() |
回傳第一個大於這個 |
| Not() |
回傳一個值為 |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| Or(BigInteger) |
回傳一個值為 |
| Pow(Int32) |
回傳一個值為 |
| ProbablePrime(Int32, Random) |
回傳一個正的 BigInteger,可能是質數,且位元長度為指定。 |
| Remainder(BigInteger) |
回傳一個值為 |
| SetBit(Int32) |
回傳一個 BigInteger,其值等同於該 BigInteger,且設定為指定位元。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
不變的任意精度整數。 (繼承來源 JavaObject) |
| ShiftLeft(Int32) |
回傳一個值為 |
| ShiftRight(Int32) |
回傳一個值為 |
| ShortValue() |
回傳指定數字的值為 |
| ShortValueExact() |
將此 |
| Signum() |
回傳此 BigInteger 的 signum 函數。 |
| Sqrt() |
回傳此大整數的整數平方根。 |
| SqrtAndRemainder() |
回傳一個包含整數平方根 |
| Subtract(BigInteger) |
回傳一個值為 |
| TestBit(Int32) |
當且僅當指定位元被設定時,會回傳 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToByteArray() |
回傳一個包含此 BigInteger 二補數表示的位元組陣列。 |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| ToString(Int32) |
回傳該大整數在給定基數中的字串表示。 |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| ValueOf(Int64) |
回傳一個大整數,其值等於指定的 |
| 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) |
回傳一個值為 |
明確介面實作
| 名稱 | 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) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
不變的任意精度整數。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |