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.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 的数字将失去所有小数精度。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
构造函数
Half(Double) |
构造一个新分配 |
Half(Int16) |
构造一个新分配 |
Half(Single) |
构造一个新分配 |
Half(String) |
构造一个新分配 |
字段
Epsilon |
Epsilon 是 1 之间的差值。 |
LowestValue |
半精度浮点可能具有的最小负值。 |
MaxExponent |
有限半精度浮点可能具有的最大指数。 |
MaxValue |
半精度浮点可能具有的最大正有限值。 |
MinExponent |
规范化半精度浮点可能具有的最小指数。 |
MinNormal |
半精度浮点可能具有的最小正法线值。 |
MinValue |
半精度浮点可能具有的最小正非零值。 |
NaN |
半精度浮点数的非数字表示形式。 |
NegativeInfinity |
半精度浮点类型的负无穷大。 |
NegativeZero |
半精度浮点类型的负 0。 |
PositiveInfinity |
半精度浮点类型的正无穷大。 |
PositiveZero |
半精度浮点类型的正 0。 |
Size |
用于表示半精度浮点值的位数。 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
IsNaN |
如果此值 |
JniIdentityHashCode |
类 |
JniPeerMembers |
类 |
PeerReference |
类 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 (继承自 Number) |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 (继承自 Number) |
方法
Abs(Int16) |
返回指定的半精度浮点数的绝对值。 |
ByteValue() |
以 的形式 |
Ceil(Int16) |
返回指向大于或等于指定半精度浮点值的负无穷大的最小半精度浮点值。 |
Clone() |
创建并返回此对象的副本。 (继承自 Object) |
Compare(Int16, Int16) |
比较两个指定的半精度浮点值。 |
CompareTo(Half) |
比较两个指定的半精度浮点值。 |
CopySign(Int16, Int16) |
返回具有第二个参数的符号的第一个参数。 |
Dispose() |
类 |
Dispose(Boolean) |
类 |
DoubleValue() |
在扩大基元转换后,以 的形式 |
Equals(Int16, Int16) |
如果两个半精度浮点值相等,则返回 true。 |
Equals(Object) |
指示某个其他对象是否“等于”此对象。 (继承自 Object) |
FloatValue() |
在扩大基元转换后,以 的形式 |
Floor(Int16) |
返回正无穷大小于或等于指定的半精度浮点值的最大半精度浮点值。 |
GetExponent(Int16) |
返回在指定半精度浮点值的表示形式中使用的无偏指数。 |
GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
GetSign(Int16) |
返回指定的半精度浮点数的符号。 |
GetSignificand(Int16) |
返回指定半精度浮点值的表示形式中使用的有效值或尾数。 |
Greater(Int16, Int16) |
如果前半精度浮点值大于后半精度浮点值 (大于后半精度浮点值) 正无穷大,则返回 true。 |
GreaterEquals(Int16, Int16) |
如果前半精度浮点值大于 (向正无穷大) 大于或等于后半精度浮点值,则返回 true。 |
HalfToIntBits(Int16) |
根据 中所述 |
HalfToRawIntBits(Int16) |
根据 中所述 |
HalfToShortBits(Int16) |
根据 中所述 |
HalfValue() |
以包含 中所述 |
HashCode(Int16) |
返回半精度浮点值的哈希代码。 |
IntBitsToHalf(Int32) |
返回对应于给定位表示形式的半精度浮点值。 |
IntValue() |
在收缩基元转换后以 的形式 |
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() |
在收缩基元转换后以 的形式 |
Max(Int16, Int16) |
返回两个半精度浮点值中的较大值, (最接近正无穷大) 的值。 |
Min(Int16, Int16) |
返回两个半精度浮点值中较小的一个, (最接近负无穷大) 的值。 |
Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
ParseHalf(String) |
返回由指定字符串表示的半精度浮点值。 |
Round(Int16) |
返回与指定的半精度浮点值最接近的整型半精度浮点值。 |
SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
ShortValue() |
以 的形式 |
ToArray<T>() |
类 |
ToFloat(Int16) |
将指定的半精度浮点值转换为单精度浮点值。 |
ToHalf(Single) |
将指定的单精度浮点值转换为半精度浮点值。 |
ToHexString(Int16) |
返回指定的半精度浮点值的十六进制字符串表示形式。 |
ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
ToString(Int16) |
返回指定半精度浮点值的字符串表示形式。 |
Trunc(Int16) |
返回指定的半精度浮点值的截断的半精度浮点值。 |
UnregisterFromRuntime() |
类 |
ValueOf(Int16) |
返回表示 |
ValueOf(Single) |
返回表示 |
ValueOf(String) |
返回表示 |
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) |
类 |
IJavaPeerable.Disposed() |
类 |
IJavaPeerable.DisposeUnlessReferenced() |
类 |
IJavaPeerable.Finalized() |
类 |
IJavaPeerable.JniManagedPeerState |
类 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
类 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
类 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
类 |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
类 |
GetJniTypeName(IJavaPeerable) |
类 |