Half Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A Half classe é um wrapper e uma classe de utilitário para manipular tipos de dados de ponto flutuante IEEE 754 de meia precisão (também chamados de fp16 ou 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
- Herança
- Atributos
- Implementações
Comentários
A Half classe é um wrapper e uma classe de utilitário para manipular tipos de dados de ponto flutuante IEEE 754 de meia precisão (também chamados de fp16 ou binary16). Um float de meia precisão pode ser criado ou convertido em floats de precisão única e é armazenado em um tipo de dados curto. Para distinguir valores curtos que contêm flutuações de meia precisão de valores curtos regulares, é recomendável usar a @HalfFloat anotação.
O padrão IEEE 754 especifica um fp16 como tendo o seguinte formato:
<ul><li>Bit de sinal: 1 bit</li><li>Largura do expoente: 5 bits</li li>><Significand: 10 bits</li></ul>
O formato é definido da seguinte maneira:
1 11111 1111111111
^ --^-- -----^----
sign | |_______ significand
|
-- exponent
Pontos flutuantes de meia precisão podem ser úteis para salvar memória e/ou largura de banda em detrimento de intervalo e precisão quando comparados a pontos flutuantes de precisão única (fp32).
Para ajudá-lo a decidir se fp16 é o tipo de armazenamento certo de que você precisa, consulte a tabela abaixo que mostra a precisão disponível em todo o intervalo de valores possíveis. A <coluna em>precision</em> indica o tamanho da etapa entre dois números consecutivos em uma parte específica do intervalo.
<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<>tr td>><1 ⁄ 16.384</td td>><1 ⁄ 16.777.216</td></tr><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><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<>tr><td>1 ⁄ 512</td td><>1 ⁄ 524.288</td></tr<>tr td><>1 ⁄ 256</td><td>1 ⁄ 262,144</td></tr<>tr><td>1 ⁄ 128</td td>><1 ⁄ 131.072</td></tr><tr td>><1 ⁄ 64</td><td>1 ⁄ 65,536</td></tr<>tr><td>1 ⁄ 32</td><td>1 ⁄ 32.768</td></tr><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><tr td><>1 ⁄ 2</td><td>1 ⁄ 2.048</td></tr><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<>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<>tr><td>512</td td><>1 ⁄ 2</td></tr><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<>tr td><>8,192</td><td>8</td></tr><tr><td>16.384</td td><>16</td></tr<>tr td>><32.768</td td><>32</td></tr></table>
Esta tabela mostra que números maiores que 1024 perdem toda a precisão fracionária.
Documentação Java para android.util.Half.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.
Construtores
| Nome | Description |
|---|---|
| Half(Double) |
Constrói um objeto recém-alocado |
| Half(Int16) |
Constrói um objeto recém-alocado |
| Half(Single) |
Constrói um objeto recém-alocado |
| Half(String) |
Constrói um objeto recém-alocado |
Campos
| Nome | Description |
|---|---|
| Epsilon |
Epsilon é a diferença entre 1. |
| LowestValue |
Menor valor negativo que um float de meia precisão pode ter. |
| MaxExponent |
Expoente máximo que um float finito de meia precisão pode ter. |
| MaxValue |
Valor finito positivo máximo que um float de meia precisão pode ter. |
| MinExponent |
Expoente mínimo que um float de meia precisão normalizado pode ter. |
| MinNormal |
O menor valor normal positivo que um float de meia precisão pode ter. |
| MinValue |
O menor valor positivo diferente de zero que um float de meia precisão pode ter. |
| NaN |
Uma representação não numérica de um float de meia precisão. |
| NegativeInfinity |
Infinito negativo do tipo float de meia precisão. |
| NegativeZero |
Negativo 0 do tipo flutuação de meia precisão. |
| PositiveInfinity |
Infinito positivo do tipo float de meia precisão. |
| PositiveZero |
Positivo 0 do tipo de flutuação de meia precisão. |
| Size |
O número de bits usados para representar um valor flutuante de meia precisão. |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de runtime deste |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
| IsNaN |
Retornará true se esse |
| JniIdentityHashCode |
A |
| JniPeerMembers |
A |
| PeerReference |
A |
| ThresholdClass |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Number) |
| ThresholdType |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Number) |
Métodos
| Nome | Description |
|---|---|
| Abs(Int16) |
Retorna o valor absoluto do float de meia precisão especificado. |
| ByteValue() |
Retorna o valor do número especificado como um |
| Ceil(Int16) |
Retorna o menor valor flutuante de meia precisão em direção ao infinito negativo maior ou igual ao valor de flutuação de meia precisão especificado. |
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| Compare(Int16, Int16) |
Compara os dois valores de flutuação de meia precisão especificados. |
| CompareTo(Half) |
Compara os dois valores de flutuação de meia precisão especificados. |
| CopySign(Int16, Int16) |
Retorna o primeiro parâmetro com o sinal do segundo parâmetro. |
| Dispose() |
A |
| Dispose(Boolean) |
A |
| DoubleValue() |
Retorna o valor disso |
| Equals(Int16, Int16) |
Retorna true se os dois valores flutuantes de meia precisão forem iguais. |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| FloatValue() |
Retorna o valor disso |
| Floor(Int16) |
Retorna o maior valor flutuante de meia precisão em direção ao infinito positivo menor ou igual ao valor de flutuação de meia precisão especificado. |
| GetExponent(Int16) |
Retorna o expoente imparcial usado na representação do valor flutuante de meia precisão especificado. |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| GetSign(Int16) |
Retorna o sinal do float de meia precisão especificado. |
| GetSignificand(Int16) |
Retorna o significand, ou mantissa, usado na representação do valor flutuante de meia precisão especificado. |
| Greater(Int16, Int16) |
Retornará true se o primeiro valor flutuante de precisão parcial for maior (maior para o infinito positivo) do que o segundo valor flutuante de precisão parcial. |
| GreaterEquals(Int16, Int16) |
Retornará true se o primeiro valor flutuante de precisão parcial for maior (maior para o infinito positivo) ou igual ao segundo valor flutuante de precisão de meia. |
| HalfToIntBits(Int16) |
Retorna uma representação do valor de flutuação de meia precisão especificado de acordo com o layout de bit descrito em |
| HalfToRawIntBits(Int16) |
Retorna uma representação do valor de flutuação de meia precisão especificado de acordo com o layout de bit descrito em |
| HalfToShortBits(Int16) |
Retorna uma representação do valor de flutuação de meia precisão especificado de acordo com o layout de bit descrito em |
| HalfValue() |
Retorna o valor de meia precisão disso |
| HashCode(Int16) |
Retorna um código hash para um valor flutuante de meia precisão. |
| IntBitsToHalf(Int32) |
Retorna o valor flutuante de meia precisão correspondente a uma determinada representação de bit. |
| IntValue() |
Retorna o valor disso |
| InvokeIsNaN(Int16) |
Retornará true se o valor de flutuação de meia precisão especificado representar um Não-um-Número, caso contrário, false. |
| IsInfinite(Int16) |
Retornará true se o valor de flutuação de meia precisão especificado representar infinito, caso contrário, false. |
| IsNormalized(Int16) |
Retorna true se o valor de flutuação de meia precisão especificado for normalizado (não tem uma representação subnormal). |
| JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
| Less(Int16, Int16) |
Retornará true se o primeiro valor flutuante de precisão parcial for menor (menor em relação ao infinito negativo) do que o segundo valor flutuante de precisão parcial. |
| LessEquals(Int16, Int16) |
Retornará true se o primeiro valor flutuante de precisão parcial for menor (menor para o infinito negativo) ou igual ao segundo valor flutuante de precisão de meia. |
| LongValue() |
Retorna o valor disso |
| Max(Int16, Int16) |
Retorna o maior de dois valores flutuantes de meia precisão (o valor mais próximo do infinito positivo). |
| Min(Int16, Int16) |
Retorna o menor de dois valores flutuantes de meia precisão (o valor mais próximo do infinito negativo). |
| Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
| NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
| ParseHalf(String) |
Retorna o valor flutuante de meia precisão representado pela cadeia de caracteres especificada. |
| Round(Int16) |
Retorna o valor flutuante de meia precisão integral mais próximo ao valor de flutuação de meia precisão especificado. |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| ShortValue() |
Retorna o valor do número especificado como um |
| ToArray<T>() |
A |
| ToFloat(Int16) |
Converte o valor de flutuação de meia precisão especificado em um valor flutuante de precisão única. |
| ToHalf(Single) |
Converte o valor de flutuação de precisão única especificado em um valor flutuante de meia precisão. |
| ToHexString(Int16) |
Retorna uma representação de cadeia de caracteres hexadecimal do valor flutuante de meia precisão especificado. |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| ToString(Int16) |
Retorna uma representação de cadeia de caracteres do valor flutuante de meia precisão especificado. |
| Trunc(Int16) |
Retorna o valor flutuante de meia precisão truncado do valor flutuante de meia precisão especificado. |
| UnregisterFromRuntime() |
A |
| ValueOf(Int16) |
Retorna uma |
| ValueOf(Single) |
Retorna uma |
| ValueOf(String) |
Retorna uma |
| Wait() |
Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<> (Herdado de Object) |
| Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
| Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IComparable.CompareTo(Object) |
A |
| IJavaPeerable.Disposed() |
A |
| IJavaPeerable.DisposeUnlessReferenced() |
A |
| IJavaPeerable.Finalized() |
A |
| IJavaPeerable.JniManagedPeerState |
A |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
A |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
A |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
A |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
A |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |