Linguaggio

Half Classe

Definizione

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.

per android.util.Half.

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 che rappresenta l'argomento convertito in un oggetto float a metà precisione.

Half(Int16)

Costruisce un oggetto appena allocato Half che rappresenta l'argomento tipo float a metà precisione.

Half(Single)

Costruisce un oggetto appena allocato Half che rappresenta l'argomento convertito in un oggetto float a metà precisione.

Half(String)

Costruisce un oggetto appena allocato Half che rappresenta il valore float a metà precisione rappresentato dalla stringa.

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 Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
IsNaN

Restituisce true se questo Half valore rappresenta un valore Not-a-Number, false in caso contrario.

JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniManagedPeerState

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).

(Ereditato da JavaObject)
JniPeerMembers

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).

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 .byte

(Ereditato da Number)
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 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).

(Ereditato da JavaObject)
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 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).

(Ereditato da JavaObject)
DoubleValue()

Restituisce il valore di questo Half oggetto come oggetto double dopo una conversione primitiva più ampia.

Equals(Int16, Int16)

Restituisce true se i due valori float a metà precisione sono uguali.

Equals(Object)

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).

(Ereditato da JavaObject)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
FloatValue()

Restituisce il valore di questo Half oggetto come oggetto float dopo una conversione primitiva più ampia.

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 Half.

HalfToRawIntBits(Int16)

Restituisce una rappresentazione del valore float a metà precisione specificato in base al layout di bit descritto in Half.

HalfToShortBits(Int16)

Restituisce una rappresentazione del valore float a metà precisione specificato in base al layout di bit descritto in Half.

HalfValue()

Restituisce il valore a metà precisione di questo Half oggetto come oggetto short contenente la rappresentazione di bit descritta in Half.

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 Half oggetto come oggetto int dopo una conversione primitiva di tipo narrowing.

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 Half oggetto come oggetto long dopo una conversione primitiva di tipo narrowing.

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 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).

(Ereditato da JavaObject)
ShortValue()

Restituisce il valore del numero specificato come .short

(Ereditato da Number)
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 Half che rappresenta il valore float a metà precisione specificato.

ValueOf(Single)

Restituisce un'istanza Half che rappresenta il valore float specificato.

ValueOf(String)

Restituisce un'istanza Half che rappresenta il valore stringa specificato.

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 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).

IJavaPeerable.Disposed()

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).

(Ereditato da JavaObject)
IJavaPeerable.Finalized()

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).

(Ereditato da JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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).

(Ereditato da JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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).

(Ereditato da JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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).

(Ereditato da JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

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).

(Ereditato da JavaObject)
IJavaPeerable.UnregisterFromRuntime()

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).

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

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).

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a