Half Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
La Half classe è un wrapper e una classe di utilità per modificare i tipi di dati a virgola mobile IEEE 754 a metà precisione (detti anche fp16 o 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
- Ereditarietà
- Attributi
- Implementazioni
Commenti
La Half classe è un wrapper e una classe di utilità per modificare i tipi di dati a virgola mobile IEEE 754 a metà precisione (detti anche fp16 o binary16). Un float a metà precisione può essere creato o convertito in float a precisione singola e archiviato in un tipo di dati breve. Per distinguere i valori brevi che contengono valori float a metà precisione dai valori brevi regolari, è consigliabile usare l'annotazione @HalfFloat .
Lo standard IEEE 754 specifica un fp16 con il formato seguente:
<ul>li Sign bit: 1 bit</li><li>Exponent width: 5 bits</li li><>Significand: 10 bits</li></ul><>
Il formato è disposto come segue:
1 11111 1111111111
^ --^-- -----^----
sign | |_______ significand
|
-- exponent
I punti mobili a metà precisione possono essere utili per risparmiare memoria e/o larghezza di banda a scapito dell'intervallo e della precisione rispetto ai punti mobili a precisione singola (fp32).
Per decidere se fp16 è il tipo di archiviazione appropriato, vedere la tabella seguente che mostra la precisione disponibile nell'intervallo di valori possibili. La <colonna em>precision</em> indica la dimensione del passaggio tra due numeri consecutivi in una parte specifica dell'intervallo.
<table summary="Precision of fp16 across the range">tr th Range start</th th><>Precision</th></tr 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 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 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<><><tr><td>2</td td><>1 ⁄ 512</td></tr tr><><td>4</td td><>1 ⁄ 256</td></tr tr><><td>8</td td><>1 ⁄ 128</td></tr tr><><td>16</td td><>1 ⁄ 64</td></tr><><td>32</td td><>1 ⁄ 32</td></tr tr><><td>64</td td><>1 ⁄ 16</td></tr tr><><td>128</td td><>1 ⁄ 8</td></tr tr><><td>256</td td><>1 ⁄ 4</td></tr><><td>512</td td><>1 ⁄ 2</td></tr><td><>1,024</td><td>1</td></tr tr><><td>2.048</td td><>2</td></tr tr><><td>4.096</td td><>4</td/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>
Questa tabella mostra che i numeri superiori a 1024 perdono tutta la precisione frazionaria.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Costruttori
| Nome | Descrizione |
|---|---|
| Half(Double) |
Costruisce un oggetto appena allocato |
| Half(Int16) |
Costruisce un oggetto appena allocato |
| Half(Single) |
Costruisce un oggetto appena allocato |
| Half(String) |
Costruisce un oggetto appena allocato |
Campi
| Nome | Descrizione |
|---|---|
| Epsilon |
Epsilon è la differenza tra 1. |
| LowestValue |
Il valore negativo più piccolo potrebbe avere un valore float a metà precisione. |
| MaxExponent |
L'esponente massimo di un float a metà precisione finito può avere. |
| MaxValue |
Il valore massimo positivo finito di un float a metà precisione può avere. |
| MinExponent |
L'esponente minimo di un float normalizzato a metà precisione può avere. |
| MinNormal |
Il valore normale positivo più piccolo può avere un valore float a metà precisione. |
| MinValue |
Il più piccolo valore positivo diverso da zero può avere un float a metà precisione. |
| NaN |
Rappresentazione not-a-Number di un float a metà precisione. |
| NegativeInfinity |
Infinito negativo di tipo float a metà precisione. |
| NegativeZero |
Valore negativo 0 del tipo float a metà precisione. |
| PositiveInfinity |
Infinito positivo di tipo float a metà precisione. |
| PositiveZero |
0 positivo di tipo float a metà precisione. |
| Size |
Numero di bit utilizzati per rappresentare un valore float a metà precisione. |
Proprietà
| Nome | Descrizione |
|---|---|
| Class |
Restituisce la classe di runtime di questo |
| Handle |
Handle per l'istanza di Android sottostante. (Ereditato da Object) |
| IsNaN |
Restituisce true se questo |
| JniIdentityHashCode |
Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| JniManagedPeerState |
La |
| JniPeerMembers |
La |
| PeerReference |
Ottiene il riferimento all'oggetto JNI per questo peer Java. (Ereditato da Object) |
| ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Number) |
| ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Number) |
Metodi
| Nome | Descrizione |
|---|---|
| Abs(Int16) |
Restituisce il valore assoluto del valore float a metà precisione specificato. |
| ByteValue() |
Restituisce il valore del numero specificato come . |
| Ceil(Int16) |
Restituisce il valore float a metà precisione più piccolo verso un infinito negativo maggiore o uguale al valore float a metà precisione specificato. |
| Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
| Compare(Int16, Int16) |
Confronta i due valori float a metà precisione specificati. |
| CompareTo(Half) |
Confronta i due valori float a metà precisione specificati. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
La |
| CopySign(Int16, Int16) |
Restituisce il primo parametro con il segno del secondo parametro. |
| Dispose() |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| Dispose(Boolean) |
Rilascia le risorse contenute in questo peer Java. (Ereditato da Object) |
| DisposeUnlessReferenced() |
La |
| DoubleValue() |
Restituisce il valore di questo |
| Equals(Int16, Int16) |
Restituisce true se i due valori float a metà precisione sono uguali. |
| Equals(Object) |
La |
| Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
| FloatValue() |
Restituisce il valore di questo |
| Floor(Int16) |
Restituisce il valore float a metà precisione più grande verso un infinito positivo minore o uguale al valore float a metà precisione specificato. |
| GetExponent(Int16) |
Restituisce l'esponente non distorto utilizzato nella rappresentazione del valore float a metà precisione specificato. |
| GetHashCode() |
Restituisce un valore di codice hash per l'oggetto . (Ereditato da Object) |
| GetSign(Int16) |
Restituisce il segno del valore float a metà precisione specificato. |
| GetSignificand(Int16) |
Restituisce il significando o la mantissa utilizzata nella rappresentazione del valore float a metà precisione specificato. |
| Greater(Int16, Int16) |
Restituisce true se il valore float della prima precisione a metà è maggiore (maggiore verso l'infinito positivo) rispetto al secondo valore float a precisione metà. |
| GreaterEquals(Int16, Int16) |
Restituisce true se il valore float della prima precisione a metà è maggiore (maggiore verso l'infinito positivo) o uguale al valore float della seconda metà precisione. |
| HalfToIntBits(Int16) |
Restituisce una rappresentazione del valore float a metà precisione specificato in base al layout di bit descritto in |
| HalfToRawIntBits(Int16) |
Restituisce una rappresentazione del valore float a metà precisione specificato in base al layout di bit descritto in |
| HalfToShortBits(Int16) |
Restituisce una rappresentazione del valore float a metà precisione specificato in base al layout di bit descritto in |
| HalfValue() |
Restituisce il valore a metà precisione di questo |
| HashCode(Int16) |
Restituisce un codice hash per un valore float a metà precisione. |
| IntBitsToHalf(Int32) |
Restituisce il valore float a metà precisione corrispondente a una rappresentazione di bit specificata. |
| IntValue() |
Restituisce il valore di questo |
| InvokeIsNaN(Int16) |
Restituisce true se il valore float a metà precisione specificato rappresenta un valore Not-a-Number, false in caso contrario. |
| IsInfinite(Int16) |
Restituisce true se il valore float a metà precisione specificato rappresenta l'infinito, false in caso contrario. |
| IsNormalized(Int16) |
Restituisce true se il valore float a metà precisione specificato è normalizzato (non dispone di una rappresentazione sottonormaale). |
| JavaFinalize() |
Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto . (Ereditato da Object) |
| Less(Int16, Int16) |
Restituisce true se il valore float della prima metà precisione è minore (minore verso l'infinito negativo) rispetto al secondo valore float a precisione metà. |
| LessEquals(Int16, Int16) |
Restituisce true se il valore float della prima metà precisione è minore (minore rispetto all'infinito negativo) o uguale al valore float a metà precisione. |
| LongValue() |
Restituisce il valore di questo |
| Max(Int16, Int16) |
Restituisce il valore più grande di due valori float a metà precisione (il valore più vicino all'infinito positivo). |
| Min(Int16, Int16) |
Restituisce il valore più piccolo di due valori float a metà precisione (il valore più vicino all'infinito negativo). |
| Notify() |
Riattiva un singolo thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| NotifyAll() |
Riattiva tutti i thread in attesa del monitor dell'oggetto. (Ereditato da Object) |
| ParseHalf(String) |
Restituisce il valore float a metà precisione rappresentato dalla stringa specificata. |
| Round(Int16) |
Restituisce il valore float a metà precisione integrale più vicino al valore float a metà precisione specificato. |
| SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
La |
| ShortValue() |
Restituisce il valore del numero specificato come . |
| ToArray<T>() |
Crea una matrice gestita da questo wrapper di matrice Java. (Ereditato da Object) |
| ToFloat(Int16) |
Converte il valore float a metà precisione specificato in un valore float a precisione singola. |
| ToHalf(Single) |
Converte il valore float a precisione singola specificato in un valore float a metà precisione. |
| ToHexString(Int16) |
Restituisce una rappresentazione di stringa esadecimale del valore float a metà precisione specificato. |
| ToString() |
Restituisce una rappresentazione di stringa dell'oggetto . (Ereditato da Object) |
| ToString(Int16) |
Restituisce una rappresentazione di stringa del valore float a metà precisione specificato. |
| Trunc(Int16) |
Restituisce il valore float a metà precisione troncato del valore float a metà precisione specificato. |
| UnregisterFromRuntime() |
Annulla la registrazione di questo Java peer dal runtime di interoperabilità. (Ereditato da Object) |
| ValueOf(Int16) |
Restituisce un'istanza |
| ValueOf(Single) |
Restituisce un'istanza |
| ValueOf(String) |
Restituisce un'istanza |
| Wait() |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>. (Ereditato da Object) |
| Wait(Int64, Int32) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
| Wait(Int64) |
Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IComparable.CompareTo(Object) |
La |
| IJavaPeerable.Disposed() |
La |
| IJavaPeerable.Finalized() |
La |
| IJavaPeerable.JniObjectReferenceControlBlock |
La |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
La |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
La |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
La |
| IJavaPeerable.UnregisterFromRuntime() |
La |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ottiene il nome JNI del tipo dell'istanza |
| JavaAs<TResult>(IJavaPeerable) |
Provare a digitare |
| JavaCast<TResult>(IJavaObject) |
Esegue una conversione del tipo di tipo controllato dal runtime Android. |
| JavaCast<TResult>(IJavaObject) |
La |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Provare a digitare |