礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

单精度如何表示-单精度能表示的范围

2025-11-08 06:29:45  

单精度如何表示-单精度能表示的范围

优质解答

单精度浮点数能表示的数从非常小的负数到非常大的正数,比如最小能到约1.18乘以10的负38次方,最大能到约1.18乘以10的38次方。中间能包含整数和小数,比如0.5、100、-3.14这些数都能存得下。不过特别小的数会变成0,特别大的数会变成无穷大,中间有个过渡范围叫非规格化数。

因为单精度浮点数占32位空间,所以得拆分成三部分:1位判断正负,8位存指数,剩下的23位存小数部分。指数部分用偏移127的移码,所以实际指数范围是-126到+127。比如指数-126时,数值就是1乘以2的-127次方,约等于1.18e-38。当指数+127时,数值就是1乘以2的127次方,约等于1.18e38。中间的23位小数部分隐含个1,所以最小正数是1.0乘以2的-126次方,最大正数是1.0乘以2的127次方。不过如果指数-126到+127都用来表示规格化数,那非规格化数就用来存更小的数,这时候小数部分可以变成0.1、0.01这些,所以最小能到1.0乘以2的-149次方,约等于1.4e-45。但要注意,当指数-126时,小数部分全0就是1.0乘以2的-126次方,全1就是1.0乘以2的-126次方减去2的-149次方,这样最小正数就比1.18e-38还小。反过来最大数也是这样,当指数+127时,小数部分全0就是1.0乘以2的127次方,全1就是1.0乘以2的127次方加上2的-126次方,这样最大正数就比1.18e38还大。不过这些细节在实际编程里经常遇到问题,比如0.1这种数在单精度里只能近似存储,所以计算很多次后会出现误差累积。

本题链接:

单精度浮点数表示范围