IEEE 754标准 单精度浮点规格化 墨蓝 2023-06-25 04:44 2阅读 0赞 #### 前言 #### 期末复习了,mark一下,防止以后用到再忘,记性太差了哈哈哈。 #### IEEE 754标准 #### 顾名思义,是IEEE 协会制定的一个标准,将规格化浮点数分为单精度(32位)、双精度(64位)、扩展精度(80位) **单精度** <table> <thead> <tr> <th>符号位(31)</th> <th>阶码(30-23)</th> <th>尾数有效位(22-0)</th> </tr> </thead> <tbody></tbody> </table> 如上所示,符号位占1位,阶码占8位,尾数占23位。 **双精度** <table> <thead> <tr> <th>符号位(63)</th> <th>阶码(62-52)</th> <th>尾数有效位(51-0)</th> </tr> </thead> <tbody></tbody> </table> 如上所示,符号位占1位,阶码占11位,尾数占52位。 #### 步骤 #### 1. 将所给数转换为二进制数 2. 调整阶码,使尾数最高位为1,然后将这个最高位的1和小数点一起隐含表示,得到尾数 3. 将上一步规格化后的阶码加上127,并且转换为二进制 4. 按照符号位、阶码、尾数有效位的顺序 依次写出即可 #### 习题实例说明 #### 下面两道题我们按照上面所说的步骤来。 给定-5,求IEEE 754 标准的单精度浮点数 解: 1. \-5先转换为二进制为-101,由于是负数,最高位符号位用1表示,**符号位确定** 2. 规格化使得尾数最高位为1,101 => 1.01 × 22 ,将尾数最高位和小数点一起隐含表示,且尾数在单精度中占23位,则尾数应为01 后面补21个0,**尾数确定**。即 > 01 000000000000000000000 1. 阶码由上一步知规格化后,阶码为2,加上127,变成129,即二进制10000001,**阶码确定。** 2. 至此,可以写出来IEEE 754的表示形式 <table> <thead> <tr> <th>符号位(31)</th> <th>阶码(30-23)</th> <th>尾数有效位(22-0)</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>10000001</td> <td>01 000000000000000000000</td> </tr> </tbody> </table> 给定十进制数178.125,求IEEE 754标准单精度浮点规格化数 解: 1. 178.125先转换为二进制为10110010.001,由于是正数,最高位符号位用0表示,**符号位确定** 2. 规格化使得尾数最高位为1,10110010.001 => 1.0110010001 × 27 ,将尾数最高位和小数点一起隐含表示,即0110010001 ,并且尾数在单精度中占23位,则最终尾数应为0110010001 后面补13个0,**尾数确定**。即 > 0110010001 0000000000000 1. 阶码由上一步知规格化后,阶码为7,加上127,变成134,即二进制10000110,**阶码确定。** 2. 至此,可以写出来IEEE 754的表示形式 <table> <thead> <tr> <th>符号位(31)</th> <th>阶码(30-23)</th> <th>尾数有效位(22-0)</th> </tr> </thead> <tbody> <tr> <td>0</td> <td>10000110</td> <td>0110010001 0000000000000</td> </tr> </tbody> </table> 定采用IEEE754单精度浮点数格式表示一个数为45100000H,则该数的值是\_\_B\_\_\_\_。 A.(+1.125)10×210 B.(+1.125)10×211 C.(+0.125)10×211 D.(+0.125)10×210 45100000H=0100 0101 0001 0000 0000 0000 0000 0000 符号位=0, 阶码=10001010, 尾数=00100000000000000000000。 阶码真值=(10001010)2\-(127)10=11。 因为隐含了尾数最高数位,尾数为1.001,所以其真值为(+1.125)10×211。
还没有评论,来说两句吧...