IEEE754半精度浮点数详解:结构、计算与示例
创作时间:
作者:
@小白创作中心
IEEE754半精度浮点数详解:结构、计算与示例
引用
CSDN
1.
https://blog.csdn.net/Miracle_cx/article/details/89463503
IEEE754-2008标准中包含了一种“半精度”浮点数格式,也被称为binary16。这种16位宽的浮点数格式虽然存储空间和带宽需求仅为单精度浮点数的一半,但其精度相对较低,主要适用于对精度要求不高的应用场景。
半精度浮点数的结构
半精度浮点数的格式与单精度浮点数类似,由三部分组成:
- 符号位(sign):最左边的一位,0表示正数,1表示负数。
- 指数位(exponent):接下来的5位,以余-16(excess-16)的形式存储。
- 尾数位(fraction):最后的10位,具有隐含的1。
尾数位的解释
尾数位可以理解为浮点数小数点后的部分,例如1.11的尾数就为1100000000。需要注意的是,尾数位具有隐含的1,主要用于计算时可能的进位情况。
指数位的特殊情况
指数位的值有以下几种特殊情况:
- 当指数位全为0且尾数位也全为0时,表示的就是0。
- 当指数位全为0但尾数位不全为0时,表示的是非规格化数(subnormal value),这是一个非常小的数。
- 当指数位全为1且尾数位全为0时,表示的是无穷大。如果符号位为0,则表示正无穷;如果符号位为1,则表示负无穷。
- 当指数位全为1且尾数位不全为0时,表示的不是一个数(NaN)。
- 其余情况下,指数位的值减去15就是其表示的指数。
半精度浮点数的计算方式
半精度浮点数的值可以通过以下公式计算:
(-1)^sign × 2^(指数位的值 - 15) × (1 + 0.尾数位)
例如,如果尾数位为0001110001,则0.尾数位为0.0001110001。
具体示例
半精度可以表示的最大值:0 11110 1111111111
计算方法为:(-1)^0×2^(30-15)×1.1111111111 = 1.1111111111×2^15,即十进制的65504。半精度可以表示的最小值(除了subnormal value):0 00001 0000000000
计算方法为:(-1)^(-1)×2(1-15)=2^(-14),约等于十进制的6.104×10^(-5)。再举一个平常的数,如-1.5625×10^(-1) ,即-0.15625
= -0.00101(十进制转二进制)
= -1.01×2^(-3)
所以符号位为1,指数为-3+15=12,所以指数位为01100,尾数位为0100000000。
所以-1.5625×10^(-1)用半精度浮点数表示就为1 01100 0100000000。
热门推荐
如何进行车辆索赔以保障自身权益?车辆索赔的流程和注意事项有哪些?
车辆报废保险可以退吗
车辆报废和落水保险赔偿指南
如何进行有效的测量总结?让数据变得更有意义!
《谁是最可爱的人》为何被移除教材50年?两大原因,令人细思极恐
高糖饮食如何影响肠道菌群与免疫力
白刚玉在多个领域展现应用价值
白刚玉在多个领域展现应用价值
治疗抑郁的四个方法
8款百万医疗险深度对比:从续保条件到价格全方位解析
理疗店合法吗?离休住院押金政策及离职医疗补偿全解析
全飞秒手术后出现散光该如何解释
飞秒的后遗症有哪些?半飞秒和全飞秒的后遗症
BG-Maleimide:一种用于生物标记和蛋白质交联的化学试剂
青春期长痘更容易留下痘印!改善青春痘做好10件事
机器视觉如何提高游戏中的智能NPC(非玩家角色)行为
HTML5表格设计指南:从基础到进阶的最佳实践
从“第二炮兵”到“火箭军”:中国战略导弹部队的命名变迁与发展历程
脾气大怎么控制情绪的方法
CTA检查是什么意思
零食红黑榜!尤其这 5 种,很多人以为很健康,实际很胖人
小学数学国考教案撰写指南:步骤与模板解析
医疗事故处理指南:从证据保存到人伤鉴定
DFMEA在产品设计中的重要性与应用分析
如何管理好六人团队建设
USB协议演变史:从USB 1.0到USB4.0的技术细节
广州城乡居民异地就医办理指南(条件+资料+流程)
破坏臭氧层的“氟”,如何被人类逐步解决?
《原神》开放世界设计的创新与挑战:从蒙德到稻妻的探索演变揭秘
banggi深度交流会动漫探索与创意碰撞:丰富社交体验别样精彩