IEEE-754小结

IEEE754标准

1.表示形式

\((-1)^s\) * \(2^e\) *(\(b_0.b_1b_2b_3b_4...b_p\))

其中e为指数,用移码表示.(\(b_0.b_1b_2b_3b_4...b_p\))为尾数,用原码表示.

规格化编码是\(b_0\)要省略不写

2.单精度浮点型(32位)

1位数符,8位阶码,23位尾数.

3.关于IEEE-754单精度浮点数的结论
  • 阶码的移码表示,偏移量不是\(2^n而是(2^n-1)\).8位的偏移量为127.
  • E + 127 = e,即当浮点数的指数为E时,要进行按IEEE-754标准表示时,新的指数为e(移码表示)
  • 当e=0或255时,表示特殊的数,在IEEE-754标准中.
4.例子

(1)

\((176.0625)_{10} = (10110000.0001)_2\)

对二进制规格化:

​ 10110000.0001 = 1.01100000001*\(2^7\)

将\(b_0\)去掉并扩展成IEEE-754的规定单精度所规定的的23位尾数为:

​ 011 0000 0001 0000 0000 0000

在求阶码,现在的指数为7(真值)

​ e = 7 + 127 =134

\([e]_补\) = 00000111 + 01111111 = 10000110

也可以直接将134这个10进制数转为对应的二进制数(相当于快速运算吧)

​ 134 = 10000110

结果为:

​ 0 10000110 01100000001000000000000

(2)

​ 1.0101*\(2^{-3}\)

方法一:阶码: e = -1 + 127 = 124 = (01111100)

方法二:阶码: e = \([-3]_补\) + 127 = 11111101 + 01111111

​ 1 1 1 1 1 1 0 1

+0 1 1 1 1 1 1 1


1 0 1 1 1 1 1 0 0 最高位舍去得 e = 01111100

结果为: 0 01111100 01010000000000000000000

5.IEEE-754单精度浮点数标准的阶码与真值的补码的转换
  • 符号位取反
  • 加一

\([-3]_移\) = 01111100 -----> \([-3]_补\) = 11111101

  • 符号位取反
  • 减一

\([-3]_补\) = 11111101 ----> \([-3]_移\) = 01111100

6.IEEE-754单精度浮点数的价码转为规格化浮点数的阶码

\([-3]_移\) = 01111100 写成16进制形式 7CH

7CH - 7FH = -3 H这里-3即为原来的指数

  • 例子 比如给出IEEE-754下的标准当精度浮点数的表示为

    ​ 0 10000110 01100000001000000000000 让你求原来的浮点数

    首先0表示为正

    10000110 (按上面说的方法) 求出为86H,减去7FH得 7,所以原指数为7

    也可以按原来的e = 7 + 127逆推回去或者按(5)的方法

    01100000001000000000000 要注意之前省略的1,所以位数为1.01100000001

    结果为: \(1.01100000001 * 2^7\)

上一篇:VHDL的数据类型


下一篇:计算机方向的一些*会议和期刊(转载)