如何理解浮点型float数据类型在内存中的取值范围根据指数算出来的?
ieee754标准说浮点数取值范围根据指数位置算出来的float指数一共就8位,-128~127之间数如果我赋值float129.1之上的数不就溢出了吗129不就超出指数...
ieee754 标准说浮点数取值范围根据指数位置算出来的 float 指数一共就8位,-128~127之间数 如果我赋值float 129.1之上的数不就溢出了吗129不就超出指数的取值范围了,这样的结果也是对的,书上说的也不准啊。
展开
1个回答
展开全部
指数不是补码格式的,是使用(始终大于等于0的)移码表示,这样便于比较浮点数的大小。对于32位二进制小数,指数的范围用移码表示是从0到255。其中,1至254用于表示规格化数,把它减去127,得到真实的指数值(-126至127);255用于表示正、负无穷大;0用于表示0或非规格化数(即绝对值特别小的,在数轴上靠近0的数)。
你的错误在于,指数是2^-126至2^127,并非你理解的-128至127。至于相当于10的几次幂,,把它们用对数运算求一下就知道了。
iee754对32位二进制小数的格式定义:1符号位 + 8指数位 + 23位尾数(也有叫分数的)
你的错误在于,指数是2^-126至2^127,并非你理解的-128至127。至于相当于10的几次幂,,把它们用对数运算求一下就知道了。
iee754对32位二进制小数的格式定义:1符号位 + 8指数位 + 23位尾数(也有叫分数的)
追问
什么是移码?书上没定义含义,有没有全面讲解ieee754 标准的书籍或者教材,百度答案都不全面
如果我赋值一个十进制小数超出指数范围会怎样
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询