#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
阅读(2493) | 评论(0) | 转发(0) |