/* 浮点型的存储方式 */ #include int main(void) { float f1 = 1.0; float f2 = 1.5; double d1 = 1.0; double d2 = 1.5; long double ld1 = 1.0; long double ld2 = 1.5; /* 输出float型数据在内存中的存储内容 */ printf("float (1.0) = %08x\n", *(int *) (&f1)); printf("float (1.5) = %08x\n", *(int *) (&f2)); /* 输出double型数据在内存中的存储内容 */ printf("double(1.0) = %016llx\n", *(long long *) (&d1)); printf("double(1.5) = %016llx\n", *(long long *) (&d2)); /* 输出long double型数据在内存中的存储内容 */ printf("londou(1.0) = %08x %08x %08x\n", *(((int *) (&ld1)) + 2), *(((int *) (&ld1)) + 1), *(((int *) (&ld1)))); printf("londou(1.5) = %08x %08x %08x\n", *(((int *) (&ld2)) + 2), *(((int *) (&ld2)) + 1), *(((int *) (&ld2)))); return 0; }