Half 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
類別 Half
是包裝函式和公用程序類別,可操作半精確度 16 位 IEEE 754 浮點數據類型, (也稱為 fp16 或 binary16) 。
[Android.Runtime.Register("android/util/Half", ApiSince=26, DoNotGenerateAcw=true)]
public sealed class Half : Java.Lang.Number, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("android/util/Half", ApiSince=26, DoNotGenerateAcw=true)>]
type Half = class
inherit Number
interface IComparable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
類別 Half
是包裝函式和公用程序類別,可操作半精確度 16 位 IEEE 754 浮點數據類型, (也稱為 fp16 或 binary16) 。 半精確度浮點數可以從或轉換成單精度浮點數,並儲存在簡短數據類型中。 若要區分保留半精確度浮點數的簡短值與一般短值,建議您使用 @HalfFloat
註釋。
IEEE 754 標準指定 fp16 的格式如下:
<ul>li Sign bit: 1 bit/li li><>Exponent width: 5 bits</li li<>>Significand: 10 bits<</li></ul><>
格式設定如下:
1 11111 1111111111
^ --^-- -----^----
sign | |_______ significand
|
-- exponent
相較於單精度浮點數,相較於單精度浮點數, (fp32) ,可節省記憶體和/或頻寬的半精確度浮點數。
若要協助您決定 fp16 是否為所需的正確儲存類型,請參閱下表,其中顯示可能值範圍中可用的有效位數。 em>precision</em> 數據<行會指出範圍特定部分中兩個連續數位之間的步驟大小。
<table summary=“fp16 precision of fp16 across>><>< the Range start</><>th th Precision</th></tr><<>td>0</td td>><1 ⁄ 16,777,216</td></tr<>><td>1 ⁄ 16,384</td td>><1 ⁄ 16,777,216</td></tr>><<td>1 ⁄ 8,192</td><td>1 ⁄ 8,388,608</td/tr><><td 1><>⁄4,096</td td><>1 ⁄ 4,194,304</td/tr><><td>1 ⁄ 2,048</td td>><1 ⁄ 2,097,152</td><></tr><><td>1 ⁄ 1,024</td td><>1 ⁄ 1,048,576</td/tr<><>td>>< 1 ⁄ 512</td td>><1 ⁄ 524,288</td></tr<>><td>1 ⁄ 256</td td><>1 ⁄262,144</td/tr><<>td>>< 1 ⁄ 128</td td><>1 ⁄ 131,072</td></tr<>td><>1 ⁄ 64</td td><>1 ⁄ 65,536</td/tr><><td>>< 1 ⁄ 32/td td><>1 ⁄ 32,768<</td></<>><tr td>1 ⁄ 16</td><td>1 ⁄ 16,384</td></tr><tr><td>1 ⁄ 8</td td><>1 ⁄ 8,192</td/tr><tr><td>1 ⁄ 4</td><>< td>1 ⁄ 4,096</td/tr><><td>>< 1 ⁄ 2</td td><>1 ⁄ 2,048</td></<>>><tr td 1</td><td>1 ⁄ 1,024</td/tr><><td>< 2</td>><td>1 ⁄ 512</td/tr><><td><> 4</td td>><1 ⁄ 256</td></tr><><td>8</td><td>1 ⁄ 128</td></tr>><<td>16</td><td>1 ⁄ 64</td></tr><tr><td>32</td td 1 ⁄ 32</td><>/tr>><<td><>64</td td><>1 ⁄ 16</td></tr><><td>128</td td>><1 ⁄ 8</td></tr><td><>256</td td>><1 ⁄ 4</td></><tr><td>512</td td><>1 ⁄ 2</td></tr><><td>1,024</td td></td><></tr><><td>2,048</td td><>2</td></tr<>><td>4,096</td td>><4</td></tr><tr><td>8,192</td td>><8</td/tr><td><><> 16,384</td td><>16</td/tr><tr><td>32,768</td td>><32</td><></tr></table>
下表顯示大於 1024 的數位會失去所有小數精確度。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據 中所述的詞彙使用。
建構函式
Half(Double) |
建構新配置的 |
Half(Int16) |
建構新配置的 |
Half(Single) |
建構新配置的 |
Half(String) |
建構新配置的 |
欄位
Epsilon |
Epsilon 是 1 之間的差異。 |
LowestValue |
半精確度浮點數可能具有最小的負值。 |
MaxExponent |
有限半精確度浮點數的指數上限。 |
MaxValue |
半精確度浮點數的最大正有限值。 |
MinExponent |
標準化半精確度浮點數的最小指數可能具有。 |
MinNormal |
半精確度浮點數可能具有最小正數的正數值。 |
MinValue |
半精確度浮點數可能具有最小正數非零值。 |
NaN |
半精確度浮點數的 Not-a-Number 表示法。 |
NegativeInfinity |
半精確度浮點數類型的負無限大。 |
NegativeZero |
類型為半精確度浮點數的負 0。 |
PositiveInfinity |
半精確度浮點數類型的正無限大。 |
PositiveZero |
類型為半精確度浮點數的正 0。 |
Size |
用來表示半精確度浮點數的位數。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
IsNaN |
如果這個 |
JniIdentityHashCode |
類別 |
JniPeerMembers |
類別 |
PeerReference |
類別 |
ThresholdClass |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Number) |
ThresholdType |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。 (繼承來源 Number) |
方法
Abs(Int16) |
傳回指定之半精確度浮點數的絕對值。 |
ByteValue() |
傳回指定數字的值做為 |
Ceil(Int16) |
傳回負無限大大於或等於指定半精確度浮點數的最小半精確度浮點數。 |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
Compare(Int16, Int16) |
比較兩個指定的半精確度浮點數。 |
CompareTo(Half) |
比較兩個指定的半精確度浮點數。 |
CopySign(Int16, Int16) |
傳回具有第二個參數之符號的第一個參數。 |
Dispose() |
類別 |
Dispose(Boolean) |
類別 |
DoubleValue() |
傳回這個 |
Equals(Int16, Int16) |
如果兩個半精確度浮點數相等,則傳回 true。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
FloatValue() |
傳回這個 |
Floor(Int16) |
傳回正無限大小於或等於指定半精確度浮點數的最大半精確度浮點數。 |
GetExponent(Int16) |
傳回指定之半精確度浮點數表示法中使用的不偏差指數。 |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
GetSign(Int16) |
傳回指定之半精確度浮點數的符號。 |
GetSignificand(Int16) |
傳回用於指定半精確度浮點數之表示法中的 significand 或 mantissa。 |
Greater(Int16, Int16) |
如果前半精確度浮點數大於正無限) 大 (大於第二半精確度浮點數值,則傳回 true。 |
GreaterEquals(Int16, Int16) |
如果前半精確度浮點數大於 (大於正無限大,則傳回 true,) 大於或等於第二半精確度浮點數。 |
HalfToIntBits(Int16) |
根據 中所述 |
HalfToRawIntBits(Int16) |
根據 中所述 |
HalfToShortBits(Int16) |
根據 中所述 |
HalfValue() |
傳回這個 |
HashCode(Int16) |
傳回半精確度浮點數的哈希碼。 |
IntBitsToHalf(Int32) |
傳回對應至指定位表示的半精確度浮點數。 |
IntValue() |
傳回這個 |
InvokeIsNaN(Int16) |
如果指定的半精確度浮點數代表 Not-a-Number,則傳回 true,否則傳回 false。 |
IsInfinite(Int16) |
如果指定的半精確度浮點數代表無限大,則傳回 true,否則傳回 false。 |
IsNormalized(Int16) |
如果指定的半精確度浮點數正規化,則傳回 true, (沒有非正常表示法) 。 |
JavaFinalize() |
當垃圾收集判斷對象沒有其他參考時,由物件上的垃圾收集行程呼叫。 (繼承來源 Object) |
Less(Int16, Int16) |
如果前半精確度浮點數小於負無限大, (則傳回 true,) 小於第二個半精確度浮點數。 |
LessEquals(Int16, Int16) |
如果前半精確度浮點數小於或等於第二半精確度浮點數,則傳回 true (小於負無限大) 或等於第二個半精確度浮點數。 |
LongValue() |
傳回這個 |
Max(Int16, Int16) |
傳回兩個半精確度浮點數的較大值, (最接近正無限大) 的值。 |
Min(Int16, Int16) |
傳回兩個半精確度浮點數的較小值, (最接近負無限大) 的值。 |
Notify() |
喚醒正在等候此物件的監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
ParseHalf(String) |
傳回指定字串所代表的半精確度浮點數。 |
Round(Int16) |
傳回最接近指定半精確度浮點數浮點數的整數半精確度浮點數。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ShortValue() |
傳回指定數字的值做為 |
ToArray<T>() |
類別 |
ToFloat(Int16) |
將指定的半精確度浮點數轉換成單精度浮點數。 |
ToHalf(Single) |
將指定的單精度浮點數轉換成半精確度浮點數。 |
ToHexString(Int16) |
傳回指定之半精確度浮點數的十六進位字串表示。 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
ToString(Int16) |
傳回指定之半精確度浮點數的字串表示。 |
Trunc(Int16) |
傳回指定之半精確度浮點數的截斷半精確度浮點數。 |
UnregisterFromRuntime() |
類別 |
ValueOf(Int16) |
傳 |
ValueOf(Single) |
傳 |
ValueOf(String) |
傳 |
Wait() |
讓目前的線程等到喚醒為止,通常是藉由 <em>notified</em> 或 <em>interrupted</em> 來喚醒。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
IComparable.CompareTo(Object) |
類別 |
IJavaPeerable.Disposed() |
類別 |
IJavaPeerable.DisposeUnlessReferenced() |
類別 |
IJavaPeerable.Finalized() |
類別 |
IJavaPeerable.JniManagedPeerState |
類別 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
類別 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
類別 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
類別 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
類別 |
GetJniTypeName(IJavaPeerable) |
類別 |