1.测试程序及结果
程序
#include"stdio.h"
int main()
{
float a = 7.5, b = 1.23, c = 1.24, d = 1.25;
double a1 = 7.5, b1 = 1.23, c1 = 1.24, d1 = 1.25;
int e = 0, f = 1,g= 0x7fffffff;
unsigned int h = 0xffffffff;
unsigned long long i = 0x401E000000000000,j= 0x3FF3AE147AE147AE,k= 0x3FF3D70A3D70A3D7,l= 0x3FF4000000000000;
printf("7.5_ d:%d\n7.5_x:0x%x\n7.5_llx:0x%llx\n", a,a,a);
printf("7.5_ d:%d\n7.5_x:0x%x\n7.5_llx:0x%llx\n\n",a1,a1 ,a1);
printf("1.23_ d:%d\n1.23_x:0x%x\n1.23_llx:0x%llx\n", b,b,b);
printf("1.23_ d:%d\n1.23_x:0x%x\n1.23_llx:0x%llx\n\n", b1,b1,b1);
printf("1.24_ d:%d\n1.24_x:0x%x\n1.24_llx:0x%llx\n", c,c,c);
printf("1.24_ d:%d\n1.24_x:0x%x\n1.24_llx:0x%llx\n\n",c1,c1, c1);
printf("1.25_ d:%d\n1.25_x:0x%x\n1.25_llx:0x%llx\n",d,d, d);
printf("1.25_ d:%d\n,1.25_x:0x%x\n1.25_llx:0x%llx\n\n",d1,d1, d1);
printf("0_f:%f\n\n",e);
printf("1_f:%f\n\n", f);
printf("0x7fffffff_f:%f\n\n",g);
printf("0xffffffff_f:%f\n\n", h);
printf("0x401E000000000000_f:%f\n\n", i);
printf("0x3FF3AE147AE147AE_f:%f\n\n",j);
printf("0x3FF3D70A3D70A3D7_f:%f\n\n", k);
printf("0x3FF4000000000000_f:%f\n\n",l);
return 0;
}
结果:
图1
2.结果分析
IEEE754标准
(1)
单精度(32位)浮点数的结构:
图2
名称 长度 比特位置
符号位 Sign (S) : 1bit (b31) 指数部分Exponent (E) : 8bit (b30-b23) 尾数部分Mantissa (M) : 23bit (b22-b0)
其中的指数部分(E)采用的偏置码(biased)的形式来表示正负指数,若E |