Chinaunix首页 | 论坛 | 博客
  • 博客访问: 584704
  • 博文数量: 92
  • 博客积分: 5026
  • 博客等级: 大校
  • 技术积分: 1321
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-28 11:04
文章分类

全部博文(92)

文章存档

2011年(9)

2010年(17)

2009年(12)

2008年(54)

我的朋友

分类: C/C++

2008-09-02 16:21:03

其中指数部分的8位值还要减127才是实际的指数,即:2^(n-127);
而有效数字是两个指数级之间的一个精度,来确定实数值落在两个指数级之间的具体位置;
例:
0x3f800000 // 0 01111111 000000000000000  代表 1.0
// 指数127,代表2^0,所以就是1;
// 有效数字为0,不代表0,而是代表正好是1~2之间最低的位置,所以是1.0;
0x3fc00000 // 0 01111111 100000000000000  代表 1.5
// 指数同样是0,是1~2之间的数;
// 而有效数字正好是所能表达的一半那么大,所以就是1~2的中央,是1.5;
0x40000000 // 0 10000000 000000000000000  代表 2.0
// 指数为128-127=1,所以是2,后面都是0,代表正好是2;

0x7f800000 // 0 11111111 000000000000000  正无穷
// 因为指数为所能表示的最大,以上没有再高的指数,所以有效数字必须为0,否则如果有效数字非0,就是非法的!

0x00000001 // 0 00000000 000000000000001  最小的正实数
// 如果全为0,就是代表0,所以这是比0只大一点点的:2^(-127)

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