半精度浮点数在计算机中的表示方式
半精度浮点数(Half-precision floating-point)是一种计算机数学中使用的浮点数表示方法。在IEEE 754-2008标准中,半精度浮点数被定义为使用16位(即2字节)来表示。这种16位的表示方式在存储空间有限或处理速度要求较高的场景下非常有用,但其表达的数值范围和精度相比于单精度(32位)和双精度(64位)浮点数要小得多。其中,�S是符号位,�E是指数部分(考虑偏移),�
·
半精度浮点数(Half-precision floating-point)是一种计算机数学中使用的浮点数表示方法。在IEEE 754-2008标准中,半精度浮点数被定义为使用16位(即2字节)来表示。这种格式的设计旨在在需要节省存储空间或带宽时,提供足够的数值精度,例如在图形处理、深度学习等领域。
16位半精度浮点数的内存表示分为三个部分:
- 符号位(Sign bit):1位。用于表示数值的正负,0表示正数,1表示负数。
- 指数位(Exponent bits):5位。用于表示数值的指数部分,采用偏移表示法(bias),偏移量为15。这意味着实际的指数值是存储值减去15。
- 尾数位(Fraction/Mantissa bits):10位。用于表示数值的尾数部分(即有效数字),在规范化的数中隐含了一个前导的1(不存储在尾数中)。
具体的表示如下:
- 第1位是符号位S。
- 接下来的5位是指数E,实际指数值为E-15。
- 最后的10位是尾数M,实际值为1.M,其中M是二进制小数。
因此,一个半精度浮点数的值V可以表示为:
�=(−1)�×2(�−15)×1.�V=(−1)S×2(E−15)×1.M
其中,�S是符号位,�E是指数部分(考虑偏移),�M是尾数部分,表示为1加上二进制小数。
特殊值:
- 当指数位全为0且尾数位也为0时,表示数值0(根据符号位可区分正零和负零)。
- 当指数位全为1且尾数位为0时,表示无穷大(根据符号位区分正无穷和负无穷)。
- 当指数位全为1且尾数位非0时,表示NaN(Not a Number,非数)。
- 当指数位全为0但尾数位非0时,表示非规范化数,用于表示非常接近于0的数值。
这种16位的表示方式在存储空间有限或处理速度要求较高的场景下非常有用,但其表达的数值范围和精度相比于单精度(32位)和双精度(64位)浮点数要小得多。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)