先看一段程序:
1 int main() 2 { 3 int n = 9; 4 float* pFloat = (float*)&n; 5 printf("n的值为:%d\n", n);//将一个整型值以整型的形式取出来 6 printf("*pFloat的值为:%f\n", *pFloat);//将一个整型值以浮点型的形式取出来 7 *pFloat = 9.0;//将一个浮点型存在存放整型的内存中 8 printf("num的值为:%d\n", n);//将一个浮点型值以整型的形式取出来 9 printf("*pFloat的值为:%f\n", *pFloat);//将一个浮点型的值以浮点型的形式取出来 10 return 0; 11 }
整型值以浮点型的形式取出,浮点型值以整型得形式取出都不是我们预期的结果,这证明浮点型和整型在内存中的存储形式不一样
整型的存储
整型以二进制补码的形式存储,并以十六进制展示
浮点型的存储
存储方式:
还原:
参考文章
型如何在内存中进行存储呢?_浮点型内存如何存储-CSDN博客