IEEE浮点数表示法总结

  :IEEE浮点数表示法总结

整理者:CmdHack

一:小数部分为0123456.0

二:整数部分为00.125

三:小数整数非0123456.125

都将它们的整数部分和小数部分的二进制写出来

1:然后将小数点移动到第一个1的后面  左移指数部分加1  右移指数部分减1

123456.0à11110001001000000.0à1.11100010010000000*2^16  指数16

0.125à0.001 à1.(0)*2^-3   指数-3

123456.125à.11110001001000000. 001à1.1110001001000000 001*2^16 指数16

2:经过上述转换之后最高位永远是1  所以IEEE表示法在表示尾数的时候将他们转换之后就将最高位的1删除 所以上述的尾数部分应该是

尾数:(23 不足后边补0

123456.0     à111 0001 0010 0000 0000 0000

0.125                à000 0000 0000 0000 0000 0000  

123456.125   à111 0001 0010 0000 0001 0000

38位,可以表示范围是0 - 255的无符号整数,也可以表示-128 - 127的有符号整数。但因为指数是可以为负的,所以为了统一把十进制的整数化为二进制时,都先加上127

指数(8  不足前边补0)

123456.0     à16+127à143à10001111

0.126                à-3+127à01111100

123456.125   à16+127à143à10001111

4:符号位

(1为负   0为正)

 

è上述浮点数的二进制表示分别为

123456.0     à0 10001111  111 0001 0010 0000 0000 0000

0.127                à0 01111100  000 0000 0000 0000 0000 0000  

123456.125   à0 10001111  111 0001 0010 0000 0001 0000

但是变量在内存中是依字节为单位逆序排放 123456.125举例

123456.125的二进制表示法我们算出来了是0 10001111  111 0001 0010 0000 0001 0000

32  将它们分成ABCD四个字节分别是

A(01000111)

B(11110001)

C(00100000)

D(00010000)

但是它们在内存中的分布应该为DCBA

用二进制表示就是00010000 00100000 11110001 01000111

那么他的十六进制表示为10  20  F1   47

 

总结 计算步骤:

1:整数部分 小数部分转换成对应的二进制

2:移动小数点的位置 以此计算出指数

3:尾数的最高位1去掉 然后将剩余部分当作尾数 不足23位后边补0(如果小数部分是个循环的话 那就循环到23位)

4:指数部分+127 的二进制表示

5:符号位

==》符号位(1) + 指数位(8) + 尾数(23)à计算出浮点数的二进制表示

拓展:内存分布  以字节(1字节8位)为单位逆序排放

                                                                                           20103140:58:10KR

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值