注册 登录
编程论坛 C语言论坛

double类型变量赋值和int类型变量赋值,在内存中存储结果为什么不一样

hoshiihoshii 发布于 2022-10-19 21:44, 1039 次点击
程序代码:
#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
3 回复
#2
吹水佬2022-10-19 23:52
一碗粥一碗饭
#3
纯蓝之刃2022-10-20 08:40
浮点数在内存里是以IEEE754标准定义的结构存储的,而整形是以每个0xff的值存在内存里的。
#4
hoshiihoshii2022-10-20 18:01
回复 3楼 纯蓝之刃
谢谢,验算了一下是这样
1