Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4511200
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2008-09-12 22:14:09

#include
int main()
{
 
float f = 1.0f;
int* pi = (int *)&f;
cout << hex<<*pi << endl;
  return 0;
}
二进制输出是七个1后面跟23个零。
那位知道帮忙彻底的解释一下,谢谢!
===========================================
IEEE浮点格式
float  1符号位 8位阶码 23尾数
以单精度数为例,8 位的指数为可以表达 0 到 255 之间的 255 个指数值。但是,指数可以为正数,也可以为负数。为了处理负指数的情况,实际的指数值按要求需要加上一个偏差(Bias)值作为保存在指数域中的值,单精度数的偏差值为 127,而双精度数的偏差值为 1023。比如,单精度的实际指数值 0 在指数域中将保存为 127;而保存在指数域中的 64 则表示实际的指数值 -63。 偏差的引入使得对于单精度数,实际可以表达的指数值的范围就变成 -127 到 128 之间(包含两端)。我们不久还将看到,实际的指数值 -127(保存为 全 0)以及 +128(保存为全 1)保留用作特殊值的处理。这样,实际可以表达的有效指数范围就在 -127 和 127 之间
1.0f;
1.0 * 2的0次方
规格化的表示
0 01111111 23个0
注意  单精度的实际指数值 0 在指数域中将保存为 127

 

 
阅读(2487) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~