| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 910 人关注过本帖
标题:double类型变量赋值和int类型变量赋值,在内存中存储结果为什么不一样
只看楼主 加入收藏
hoshiihoshii
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2022-10-16
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:3 
double类型变量赋值和int类型变量赋值,在内存中存储结果为什么不一样
程序代码:
#include<stdio.h>
int main()
{
    struct 
    {
        int i;
        double d;
    }record1;
    record1.i=0x12345678;
    record1.d=0x12345678;

    return 0;
    
}

查看内存d存的为什么不是0x0000000078563412?是和浮点数规格化有关吗?
0x61fe10:    0x78    0x56    0x34    0x12    0x00    0x00    0x00    0x00
0x61fe18:    0x00    0x00    0x00    0x78    0x56    0x34    0xb2    0x41
搜索更多相关主题的帖子: 内存 类型 int 赋值 变量 
2022-10-19 21:44
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
一碗粥一碗饭
2022-10-19 23:52
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:20 
浮点数在内存里是以IEEE754标准定义的结构存储的,而整形是以每个0xff的值存在内存里的。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2022-10-20 08:40
hoshiihoshii
Rank: 2
等 级:论坛游民
帖 子:8
专家分:15
注 册:2022-10-16
收藏
得分:0 
回复 3楼 纯蓝之刃
谢谢,验算了一下是这样
2022-10-20 18:01
快速回复:double类型变量赋值和int类型变量赋值,在内存中存储结果为什么不一样
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018615 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved