分类: 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) |