Yi's Blog

《程序员教程(第三版)》学习笔记——01.十进制浮点数转化为IEEE754标准单精度浮点数

2012-07-23

工业标准IEEE754

1985年IEEE(Institute of Electrical and Electronics Engineers)提出了IEEE754标准。该标准被广泛采用,其表示形式如下:

| S | P | M |

其中S为符号位,0为正数,1为负数。P为阶码,通常用移码表示,M为尾数,用原码表示,根据二进制的规格化方法,最高数字位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储的多一位。

目前,计算机中主要使用三种形式的IEEE754浮点数。

参数 单精度浮点数 双精度浮点数 扩充精度浮点数
浮点数字长 32 64 80
尾数长度 23 52 64
符号位长度 1 1 1
阶码长度 8 11 15 +16383
可表示的实数范围 10-38 ~ 1038 10-308 ~ 10308 10-4932 ~ 104932

将十进制数转化为点精度浮点数(IEEE754标准)

  1. 将十进制数转换为二进制数。
  2. 对二进制数进行规格化处理,保证最高位为1,去掉最高位并扩展为规定的23位尾数。
  3. 求阶码。用移码表示,偏移量为规定的127.

例:用IEEE754标准将176.0625转换为单精度浮点数。

  1. 将176.0625转换为二进制为 10110000.0001
  2. 规格化处理:10110000.0001=1.01100000001 × 2^7 。舍去最高位并扩展为23位尾数为
    01100000001000000000000
  3. 阶码为7,加上偏移量+127为134,用移码表示为10000110

因此结果表示如下:0 10000110 01100000001000000000000