首页 > 其他 > 详细

IEEE-754小结

时间:2020-10-05 21:54:30      阅读:23      评论:0      收藏:0      [点我收藏+]

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\)

IEEE-754小结

原文:https://www.cnblogs.com/Tisou1/p/13771091.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!