c++ 怎么把 double 存到 两32位 int 里面
发布网友
发布时间:2022-04-23 21:04
我来回答
共2个回答
热心网友
时间:2023-07-07 02:44
只要知道double类型的浮点数在计算机中如何存储的就可以了。
浮点数可以以科学计数法表示为:((-1)^s) * M * (2^E)。在计算机中,最高位(63)是符号位s,62~52保存指数E,51~0保存系数M。详见http://wenku.baidu.com/link?url=CH9QSZkITAsDwjQtMNg3WNS2mIx4g6m7kIZ1FBnc_HEDm-VOw1ZrZPKwM7dV5E7-thlu5bkoJ8t4E1fXOH9mvgqSaJyuwUuUzmnsKW7eygmDb37ZEplat81ODGhv0kWjzqb2FB_ayg-GNJMEXMzbLUighGhxKbCZs0uDIQueBBKrTURkjH0OhAMEE_p9RhmM23361Edy1z75Hi0g20HYqV2ny69baCMd_vhzeVEOtlK
要想从I32[0]和I32[1] 恢复f64,无非就是按照上述存储方式去解释各个bit位。
热心网友
时间:2023-07-07 02:45
double f64 = 9999.9999;
double ftmp = 0;
int arr[2];
double *pf64 = (double*)&arr[0];
*pf64 = f64;
ftmp = *(double*)&arr[0];