先看一段程序:
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博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通