数据格式——浮点数
浮点数的表示及标准
/*由小数点的位置可见阶码为小数,尾数为整数*/
IEEE 754 提供了个式子,任意数写成754形式,提取其中部分即可的754浮点数标准形式;反过来,已知754标准形式,将其拆分(注意去掉首位符号位留下有效位)并带入公式即可的到原始数据(真值)
/*用于计算浮点数所对应的真值,注意尾数中隐含的1和2的指数中E(即阶码)需看作无符号数;其中,短实数又称为单精度浮点数,长实数又称为双精度浮点数。单精度浮点数和双精度浮点数的阶码采用移码,但与前面所介绍的移码不同的是:它的偏移量不是 27和 2 10,而是 27-1=127 和 2 10 -1=1023;另外,它的尾数使用原码表示,且采用隐藏位,也就是将规格化浮点数尾数的最高位的“1”省略,不予保存,认为它隐藏在尾数小数点的左边,从而使有效位数又增加了一位。由此,推导出它们的真值计算公式如表 3.3,其中 E 为阶码 EsE1……Em的加权求和的值。*/
浮点数表示标准例题
1,
C
2,若 X 和 Y 均是 IEEE 754 标准的单精度浮点数,
![](https://img2020.cnblogs.com/blog/1993993/202004/1993993-20200428182305269-1943370225.png)
浮点数格式化表示及方法(是针对尾数的)
/*为了充分利用尾数的二进制数位来表示更多的有效数字,通常采用规格化形式表示浮
/*不同的R对应不同的M范围*/
/*对于原码表示的尾数,当最高有效位为 0 时,必须进行左规,尾数每左移 1 位,阶码减 1,直至尾数变为×.1ׄ„×形式;对于补码表示的尾数,当符号位与最高有效位相同时,也必须左规,即尾数每左移 1 位,阶码减 1,直至把尾数中第一个不同于符号位的“0”或“1”移至最高有效位,变为 0.1ׄ„×形式或者为 1.0ׄ„×形式。
只有当在浮点数的运算过程中,尾数发生了溢出,即超出了尾数所能表示的数据范围时,才需要进行右规处理,即尾数右移 1 位,阶码加 1,由于参加运算的浮点数必须是规格的,因此,一般只需右规一次即可。在此必须明确指出的是,浮点数的溢出是由阶码是否溢出决定的,而非尾数,尾数发生溢出可以通过右规处理,只有阶码发生溢出,浮点数才被判定为溢*/
规格化表示例题
1.
2,
3,
4,
5,
6,
规格化数表示范围
可以先求最大正数和最小正数的值,再由对称性将有效值取反即得到负数区域