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.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 符號位元:1 bit</li><li>指數寬度:5 bit</li><li>意義:10 bit</li></ul><>
節目格式如下:
1 11111 1111111111
^ --^-- -----^----
sign | |_______ significand
|
-- exponent
半精度浮點數相較於單精度浮點(FP32),能節省記憶體和/或頻寬,但代價是距離與精度的降低。
為了幫助您判斷 FP16 是否適合您的儲存類型,請參考下方表格,該表顯示了各種可能數值範圍內可用的精度。 <em>精度</em> 欄位表示特定區間中兩個連續數字之間的步長。
<表格摘要=「FP16 在整個範圍內的精度」tr><>< th>射程起始</th><>th 精度</th></tr><tr><td>0</td><td td>1 及 frasl; 16,777,216</td></tr><tr><td>1 & frasl; 16,384</td><td>1 & frasl; 16,777,216</td></tr><tr><td>1 & frasl; 8,192</td><>td 1 及 frasl; 8,388,608</td></tr><tr tr><1節及>碎石;4,096<噸/><>計量1及1連裝;4,194,304<><節/計時><><>4,1連及1連戰車;2,048</計><>時1及1連戰車;2,097,152<><><><>計時1及1連戰車;1,024<節><>1至1連戰車及1連戰車;1戰車1及弗拉斯爾1,048,576計時1,048,576<><><><>計;512</計><>時1及1戰車;524,288</><><><>計時1及法蘭西爾;256</運輸><>車 1 及 FRASL;262,144< 輛/運輸><><><車 1 輛>TD 1 及 FRASL;128</TD><>1 及 FRASL;131,072< 輛/TD></TR><><>1 及 FRASL;64/TD<><1 及 FRASL;65,536>< 輛/TD></TR><><>1 及 FRASL;32/TD<><1 及 FRASL;32,768>< 輛/TD></TR><><>1 及 FRASL;16 輛/TD<><1 及 FRASL; 16> 輛 TD 1& Fräsl;16,384<輛/計><時1輛/計><><>時1及弗拉斯爾;8<輛/計><>時1及弗拉斯爾;8,192<輛/計><><><>時1及1-弗拉斯爾;4<輛/1><>及弗拉斯爾; 4,096<輛/計><時1及弗拉斯爾; 2>/塔置<></計時><><>1及弗拉斯爾; 2,048輛/計<時2,048><輛/計><><><時1/1/1><>及弗拉斯爾;1輛/1/塔爾斯爾1輛;1輛/1輛及弗拉斯爾1,024輛<><><TR><>TD 2</TD><>1 及 FRASL;512</TD></TR><><TD>4</TD><>TD 1 及 FRASL;256</TD></TR><><>TR TD 8</TD><>TD 1 及 FRASL;128</TD></TR><><>TD 16</TD><>TD 1 及 FRASL;64</TD></TR><TR><TD>32</TD><>TD 1 及 FRASL;32/TD/TR<><TR>TD<64></TD>TD<1 及 FRASL;16></TD>/TR<><TD><128></TD><TD 1 及 FRASL;8></TD>/TR<><TR>TD<256></TD><TD 1 及 FRASL;4></TD>/TR<><TR><TD 512></TD>TD<1 及 FRASL;2></TD/>TR<><TR TD><1,024></TDL><><TD 1/TD/TR><TR><TD>2,048</TD><>TD 2</TD></TR><TD><>4,096/TD<><4,096>/TD 4<></TD><><>4,192 TD 8,192</TD><>TD 8</><TD/TR><TR><>16,384<><> TD 16/TD/TR 16</TD></TR><32><><><>/TD 32</TDD><><></tr></表格>
此表顯示,數值高於1024時會失去所有分數精度。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| Half(Double) |
構造一個新分配 |
| Half(Int16) |
構造一個新分配 |
| Half(Single) |
構造一個新分配 |
| Half(String) |
構造一個新分配 |
欄位
| 名稱 | Description |
|---|---|
| Epsilon |
Epsilon 是 1. |
| LowestValue |
半精度浮點數可能擁有的最小負值。 |
| MaxExponent |
有限半精度浮點的最大指數可能有。 |
| MaxValue |
半精度浮點數可能有的最大正有限值。 |
| MinExponent |
正規化半精度浮點數的最小指數可能有。 |
| MinNormal |
半精度浮點數可能擁有的最小正正規值。 |
| MinValue |
半精度浮點數中可能有的最小正非零值。 |
| NaN |
一個非數字表示的半精度浮點數。 |
| NegativeInfinity |
半精度浮點數的負無限大。 |
| NegativeZero |
半精度浮點的負0。 |
| PositiveInfinity |
型態的正無限大半精度浮點。 |
| PositiveZero |
正0,型態為半精度浮點。 |
| Size |
用於表示半精度浮點數值的位元數。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| IsNaN |
若此 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
這個 |
| JniPeerMembers |
這個 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Number) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Number) |
方法
| 名稱 | Description |
|---|---|
| Abs(Int16) |
回傳指定的半精度浮點的絕對值。 |
| ByteValue() |
回傳指定數字的值為 |
| Ceil(Int16) |
回傳最小的半精度浮點數值,該值大於或等於指定的半精度浮點數值,趨向負無限大。 |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Compare(Int16, Int16) |
比較兩個指定的半精度浮點數值。 |
| CompareTo(Half) |
比較兩個指定的半精度浮點數值。 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
這個 |
| CopySign(Int16, Int16) |
回傳第一個參數,並以第二個參數的符號。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
這個 |
| DoubleValue() |
在進行擴大原始轉換後,回傳此值 |
| Equals(Int16, Int16) |
若兩個半精度浮點數值相等,則返回為真。 |
| Equals(Object) |
這個 |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| FloatValue() |
在進行擴大原始轉換後,回傳此值 |
| Floor(Int16) |
回傳向正無限大且小於或等於指定半精度浮點值的最大半精度浮點值。 |
| GetExponent(Int16) |
回傳用於表示指定半精度浮點數值的無偏指數。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetSign(Int16) |
回傳指定的半精度浮點符號。 |
| GetSignificand(Int16) |
回傳用於表示指定半精度浮點數值的 significand 或尾數。 |
| Greater(Int16, Int16) |
若第一個半精度浮點數值大於第二個半精度浮點數值(朝向正無限大),則返回為真。 |
| GreaterEquals(Int16, Int16) |
若第一個半精度浮點數值大於或等於第二個半精度浮點值(趨近正無限大),則返回為真。 |
| HalfToIntBits(Int16) |
回傳根據描述的 |
| HalfToRawIntBits(Int16) |
回傳根據描述的 |
| HalfToShortBits(Int16) |
回傳根據描述的 |
| HalfValue() |
回傳此半 |
| HashCode(Int16) |
回傳一個半精度浮動值的雜湊碼。 |
| IntBitsToHalf(Int32) |
回傳對應給定位元表示的半精度浮點數值。 |
| IntValue() |
在經過一個縮小的原始轉換後,回傳此值 |
| InvokeIsNaN(Int16) |
若指定的半精度浮點數值代表非數字,則回傳真;否則為假。 |
| IsInfinite(Int16) |
若指定的半精度浮點數值代表無限大,則回傳真;否則為假。 |
| IsNormalized(Int16) |
若指定的半精度浮點數值已正規化(無次正規表示),則返回為真。 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Less(Int16, Int16) |
若第一個半精度浮點數值小於第二個半精度浮點數值(向負無限小),則返回為真。 |
| LessEquals(Int16, Int16) |
若第一個半精度浮點數值小於或等於第二個半精度浮點數值(向負無限小),則返回為真。 |
| LongValue() |
在經過一個縮小的原始轉換後,回傳此值 |
| Max(Int16, Int16) |
回傳兩個半精度浮點數值中較大的那個(最接近正無限大的值)。 |
| Min(Int16, Int16) |
回傳兩個半精度浮點數值中較小的一個(最接近負無限大的值)。 |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| ParseHalf(String) |
回傳由指定字串所代表的半精度浮點數值。 |
| Round(Int16) |
回傳最接近指定半精度浮動值的整數半精度浮動值。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
這個 |
| ShortValue() |
回傳指定數字的值為 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToFloat(Int16) |
將指定的半精度浮點數值轉換為單精度浮動值。 |
| ToHalf(Single) |
將指定的單精度浮點數值轉換為半精度浮點數值。 |
| ToHexString(Int16) |
回傳指定的半精度浮點數值的十六進位字串表示。 |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| ToString(Int16) |
回傳指定的半精度浮點數值的字串表示。 |
| Trunc(Int16) |
回傳指定的半精度浮點數值的截斷半精度浮點數值。 |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| ValueOf(Int16) |
回傳 |
| ValueOf(Single) |
回傳 |
| ValueOf(String) |
回傳 |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IComparable.CompareTo(Object) |
這個 |
| IJavaPeerable.Disposed() |
這個 |
| IJavaPeerable.Finalized() |
這個 |
| IJavaPeerable.JniObjectReferenceControlBlock |
這個 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
這個 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
這個 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
這個 |
| IJavaPeerable.UnregisterFromRuntime() |
這個 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
這個 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |