今天遇到一个问题,需要将两个int类型合成一个double类型,网上搜了半天未果,找到一个资深C语言朋友问了一下解决了。

记录一下,代码如下:

#include <stdio.h>

typedef union {
int date[2];
double value;
} Data;

void main()
{
int input_1 = 0x64617461;
int input_2 = 0x2F455500;
Data data;
data.date[0] = input_2;
data.date[1] = input_1;
printf("%e", data.value);
putchar('\n');
}


放到Linux机器上运行,结果如下:

C语言将两个int合成一个double_double