Share via


Half 类

定义

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>指数宽度:5 bits</li<>li>Significand:10 bits</li></ul><>

格式布局如下:

1   11111   1111111111
            ^   --^--   -----^----
            sign  |          |_______ significand
                  |
                  -- exponent

与单精度浮点 (fp32) 相比,半精度浮点有助于节省内存和/或带宽,但代价是范围和精度。

为了帮助你确定 fp16 是否是所需的正确存储类型,请参阅下表,其中显示了整个可能值范围内的可用精度。 em <>precision</em> 列指示范围特定部分中两个连续数字之间的步长。

<table summary=“precision of fp16 across the range”>tr th Range start</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><><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><<>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><<>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>1</td></tr><><td>2,048</td><td>2</td></tr><><td>4,096</td td><>4</td></tr><td>><8,192</td td><td>8</td></tr>><<td>16,384</td><td>16</td></tr><<>td>32,768</td><td>32</td></tr></table>

下表显示大于 1024 的数字将失去所有小数精度。

android.util.HalfJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

构造函数

Half(Double)

构造一个新分配 Half 的对象,该对象表示转换为半精度浮点数的参数。

Half(Int16)

构造一个新分配 Half 的对象,该对象表示半精度浮点类型参数。

Half(Single)

构造一个新分配 Half 的对象,该对象表示转换为半精度浮点数的参数。

Half(String)

构造一个新分配 Half 的对象,该对象表示由字符串表示的半精度浮点值。

字段

Epsilon

Epsilon 是 1 之间的差值。

LowestValue

半精度浮点可能具有的最小负值。

MaxExponent

有限半精度浮点可能具有的最大指数。

MaxValue

半精度浮点可能具有的最大正有限值。

MinExponent

规范化半精度浮点可能具有的最小指数。

MinNormal

半精度浮点可能具有的最小正法线值。

MinValue

半精度浮点可能具有的最小正非零值。

NaN

半精度浮点数的非数字表示形式。

NegativeInfinity

半精度浮点类型的负无穷大。

NegativeZero

半精度浮点类型的负 0。

PositiveInfinity

半精度浮点类型的正无穷大。

PositiveZero

半精度浮点类型的正 0。

Size

用于表示半精度浮点值的位数。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
IsNaN

如果此值 Half 表示 Not-a-Number,则返回 true;否则返回 false。

JniIdentityHashCode

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
JniPeerMembers

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

PeerReference

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

(继承自 Number)
ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

(继承自 Number)

方法

Abs(Int16)

返回指定的半精度浮点数的绝对值。

ByteValue()

以 的形式 byte返回指定数字的值。

(继承自 Number)
Ceil(Int16)

返回指向大于或等于指定半精度浮点值的负无穷大的最小半精度浮点值。

Clone()

创建并返回此对象的副本。

(继承自 Object)
Compare(Int16, Int16)

比较两个指定的半精度浮点值。

CompareTo(Half)

比较两个指定的半精度浮点值。

CopySign(Int16, Int16)

返回具有第二个参数的符号的第一个参数。

Dispose()

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
Dispose(Boolean)

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
DoubleValue()

在扩大基元转换后,以 的形式double返回此 Half 的值。

Equals(Int16, Int16)

如果两个半精度浮点值相等,则返回 true。

Equals(Object)

指示某个其他对象是否“等于”此对象。

(继承自 Object)
FloatValue()

在扩大基元转换后,以 的形式float返回此 Half 的值。

Floor(Int16)

返回正无穷大小于或等于指定的半精度浮点值的最大半精度浮点值。

GetExponent(Int16)

返回在指定半精度浮点值的表示形式中使用的无偏指数。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetSign(Int16)

返回指定的半精度浮点数的符号。

GetSignificand(Int16)

返回指定半精度浮点值的表示形式中使用的有效值或尾数。

Greater(Int16, Int16)

如果前半精度浮点值大于后半精度浮点值 (大于后半精度浮点值) 正无穷大,则返回 true。

GreaterEquals(Int16, Int16)

如果前半精度浮点值大于 (向正无穷大) 大于或等于后半精度浮点值,则返回 true。

HalfToIntBits(Int16)

根据 中所述 Half的位布局返回指定的半精度浮点值的表示形式。

HalfToRawIntBits(Int16)

根据 中所述 Half的位布局返回指定的半精度浮点值的表示形式。

HalfToShortBits(Int16)

根据 中所述 Half的位布局返回指定的半精度浮点值的表示形式。

HalfValue()

以包含 中所述Half的位表示形式的 返回此 Halfshort 的半精度值。

HashCode(Int16)

返回半精度浮点值的哈希代码。

IntBitsToHalf(Int32)

返回对应于给定位表示形式的半精度浮点值。

IntValue()

在收缩基元转换后以 的形式int返回此 Half 的值。

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

在收缩基元转换后以 的形式long返回此 Half 的值。

Max(Int16, Int16)

返回两个半精度浮点值中的较大值, (最接近正无穷大) 的值。

Min(Int16, Int16)

返回两个半精度浮点值中较小的一个, (最接近负无穷大) 的值。

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
ParseHalf(String)

返回由指定字符串表示的半精度浮点值。

Round(Int16)

返回与指定的半精度浮点值最接近的整型半精度浮点值。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ShortValue()

以 的形式 short返回指定数字的值。

(继承自 Number)
ToArray<T>()

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
ToFloat(Int16)

将指定的半精度浮点值转换为单精度浮点值。

ToHalf(Single)

将指定的单精度浮点值转换为半精度浮点值。

ToHexString(Int16)

返回指定的半精度浮点值的十六进制字符串表示形式。

ToString()

返回对象的字符串表示形式。

(继承自 Object)
ToString(Int16)

返回指定半精度浮点值的字符串表示形式。

Trunc(Int16)

返回指定的半精度浮点值的截断的半精度浮点值。

UnregisterFromRuntime()

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
ValueOf(Int16)

返回表示 Half 指定的半精度浮点值的 实例。

ValueOf(Single)

返回表示 Half 指定浮点值的 实例。

ValueOf(String)

返回表示 Half 指定字符串值的 实例。

Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

显式接口实现

IComparable.CompareTo(Object)

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

IJavaPeerable.Disposed()

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
IJavaPeerable.Finalized()

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

GetJniTypeName(IJavaPeerable)

Half 是一个包装和一个实用工具类,用于操作半精度 16 位 IEEE 754 浮点数据类型 (也称为 fp16 或 binary16) 。

适用于