浮点数是一个公式化的表达式,用来逼近实数,可以在表达式范围和表达式精度之间进行权衡。浮点数通常表示为:其中M(尾数)称为浮点数的尾数,R(基数)称为阶码的基数,
浮点数是一个公式化的表达式,用来逼近实数,可以在表达式范围和表达式精度之间进行权衡。
浮点数通常表示为:
其中M(尾数)称为浮点数的尾数,R(基数)称为阶码的基数,E(指数)称为阶的阶码。一般计算机规定r为2,是一个确定的常数,不需要用浮点数显式表示。
因此,在已知的标准下,为了表示浮点数,
一种是给定尾数M的值,通常以定点小数形式表示,它决定了浮点数的表达精度,即可以给定的有效位数。
二是给出订单代码,通常以定点整数的形式表示。它指出了小数点在数据中的位置,决定了浮点数的范围。因此,在计算机中,浮点数通常用以下格式表示:(假设一个以2为基数的32位浮点数,其中最高位是符号位)
浮点数的规范化表示
根据上面的指数表示法,浮点数将有不同的表示法:
为了提高数据表示的准确性,保证数据表示的唯一性,需要对浮点数进行规范化。
在计算机中,对于非零值的浮点数,要求尾数字段的最高有效位应为1,满足这种表示要求的浮点数称为规格化表示:将不满足这种表示要求的尾数变为满足这种要求的尾数的运算过程称为浮点数的规格化处理,通过尾数移位和修改顺序码来实现。
注意尾数的最高位永远是1,所以我们可以完全省略这个位。
IEEE754标准限制了浮点数的大部分设置:(尾数使用原码;代码是“移码”;基数2)
(1)尾数在原码中,尾数最高位隐藏。
原码不为0的浮点数的尾数值的最高位必须是1,所以可以忽略这个数字,这样二进制数就可以多存储一位相同位数,有利于提高数据表示的准确性。据说这种处理方案使用了隐藏位技术。当然,在检索这类浮点数到运算器进行运算时,必须先恢复隐藏位。
(2)“移码”用于订单代码,基数固定为2。
下图中的32位浮点数和64位浮点数是从最高位开始的符号位、顺序码和尾数。
最终的32位单精度浮点数是:1 1000 0000 1110 0000 0000 0000 0000 0000。
更多信息,请查看我的专栏“90天精通C编程”
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/275324.html